반응형
그래서, 각각 100 개의 요소를 가진 100,000 개의 float 배열이 있다고 가정 해 봅시다. 가장 높은 X 개의 값이 필요하지만 Y보다 큰 경우에만 해당됩니다.이 값과 일치하지 않는 요소는 0으로 설정해야합니다. Python에서이를 수행하는 가장 빠른 방법은 무엇입니까? 순서를 유지해야합니다. 대부분의 요소는 이미 0으로 설정되어 있습니다.
샘플 변수 :
array = [.06, .25, 0, .15, .5, 0, 0, 0.04, 0, 0]
highCountX = 3
lowValY = .1
예상 결과:
array = [0, .25, 0, .15, .5, 0, 0, 0, 0, 0]
해결 방법
array_np = numpy.asarray(array)
low_values_flags = array_np < lowValY # Where values are low
array_np[low_values_flags] = 0 # All low values set to 0
이제 highCountX 가장 큰 요소 만 필요하면 작은 요소를 0으로 설정하고 정렬하는 대신 "잊고"큰 요소 목록 만 정렬 할 수도 있습니다.
array_np = numpy.asarray(array)
print numpy.sort(array_np[array_np >= lowValY])[-highCountX:]
참조 페이지 https://stackoverflow.com/questions/1623849
반응형
'파이썬' 카테고리의 다른 글
파이썬 Ubuntu 12.10에서 Python Pip의 시스템 버전을 망쳤습니다. (0) | 2021.01.18 |
---|---|
파이썬 : __getattr __ ()을 구현하는 방법? (0) | 2021.01.18 |
파이썬 기존 값보다 큰 값의 첫 번째 Numpy (0) | 2021.01.18 |
파이썬 아름다운 수프와 레를 사용하여 특정 텍스트를 포함하는 특정 클래스로 스팬을 찾는 방법은 무엇입니까? (0) | 2021.01.18 |
파이썬 목록을 n 그룹으로 분할하는 다른 방법 (0) | 2021.01.18 |
댓글