반응형
    
    
    
  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 | 
댓글