반응형
2D numpy 배열이 있습니다. 이 배열의 일부 값은 NaN
입니다. 이 배열을 사용하여 특정 작업을 수행하고 싶습니다. 예를 들어 배열을 고려하십시오.
[[ 0. 43. 67. 0. 38.]
[ 100. 86. 96. 100. 94.]
[ 76. 79. 83. 89. 56.]
[ 88. NaN 67. 89. 81.]
[ 94. 79. 67. 89. 69.]
[ 88. 79. 58. 72. 63.]
[ 76. 79. 71. 67. 56.]
[ 71. 71. NaN 56. 100.]]
각 행을 한 번에 하나씩 가져 와서 역순으로 정렬하여 행에서 최대 3 개의 값을 가져와 평균을 가져 오려고합니다. 내가 시도한 코드는 다음과 같습니다.
# nparr is a 2D numpy array
for entry in nparr:
sortedentry = sorted(entry, reverse=True)
highest_3_values = sortedentry[:3]
avg_highest_3 = float(sum(highest_3_values)) / 3
NaN
이 포함 된 행에는 작동하지 않습니다. 제 질문은 2D numpy 배열에서 모든 NaN
값을 0으로 변환하는 빠른 방법이 있으므로 정렬 및 수행하려는 다른 작업에 문제가 없습니다.
해결 방법
이것은 작동합니다.
from numpy import *
a = array([[1, 2, 3], [0, 3, NaN]])
where_are_NaNs = isnan(a)
a[where_are_NaNs] = 0
위의 경우 where_are_NaNs는 다음과 같습니다.
In [12]: where_are_NaNs
Out[12]:
array([[False, False, False],
[False, False, True]], dtype=bool)
참조 페이지 https://stackoverflow.com/questions/5124376
반응형
'파이썬' 카테고리의 다른 글
파이썬 Python을 사용하여 웹 페이지의 페이지 제목을 검색하려면 어떻게해야합니까? (0) | 2020.10.09 |
---|---|
파이썬 django의 queryset에서 첫 번째 객체를 얻는 가장 빠른 방법은 무엇입니까? (0) | 2020.10.09 |
파이썬 VSCode : 인수를 사용하여 Python 스크립트를 디버그하는 방법 (0) | 2020.10.09 |
파이썬 왜 목록에는 사전과 같은 안전한 "get"메소드가 없습니까? (0) | 2020.10.09 |
파이썬 SyntaxError : 생성기 표현식은 괄호로 묶어야합니다. (0) | 2020.10.09 |
댓글