반응형
두 개의 numpy 배열을 구성한다고 가정하십시오.
a = np.array([np.NaN, np.NaN])
b = np.array([np.NaN, np.NaN, 3])
이제 np.mean
이 a
와 b
모두에 대해 nan
을 반환한다는 것을 알았습니다.
>>> np.mean(a)
nan
>>> np.mean(b)
nan
>>> np.nanmean(b)
3.0
그러나 배열에 그러나 nan
값이 없으면 경고가 발생합니다.
>>> np.nanmean(a)
nan
C:\python-3.4.3\lib\site-packages\numpy\lib\nanfunctions.py:598: RuntimeWarning: Mean of empty slice
warnings.warn("Mean of empty slice", RuntimeWarning)
나는 경고를 억제하는 것을 좋아하지 않습니다. 그 경고없이 nanmean
의 동작을 얻는 데 사용할 수있는 더 나은 기능이 있습니까?
해결 방법
경고 만 억제하지 않을 이유가 전혀 없습니다.
import numpy as np
import warnings
x = np.ones((1000, 1000)) * np.nan
# I expect to see RuntimeWarnings in this block
with warnings.catch_warnings():
warnings.simplefilter("ignore", category=RuntimeWarning)
foo = np.nanmean(x, axis=1)
@dawg의 솔루션도 작동하지만 궁극적으로 모든 NaN 배열에서 np.nanmean
을 계산하지 않기 위해 취해야하는 추가 단계는 피할 수있는 추가 오버 헤드를 발생시킵니다. 경고를 억제하는 것뿐입니다. 또한 귀하의 의도가 코드에 훨씬 더 명확하게 반영됩니다.
참조 페이지 https://stackoverflow.com/questions/29688168
반응형
'파이썬' 카테고리의 다른 글
파이썬 Django 오류 : "users_user"관계가 존재하지 않습니다. (0) | 2020.11.24 |
---|---|
파이썬 How do i program a simple IRC bot in python? (0) | 2020.11.24 |
파이썬 matplotlib에서 ticklabel과 축 사이에 공간을 어떻게 추가합니까? (0) | 2020.11.24 |
파이썬 pandas-사전에서 데이터 프레임에 새 열 추가 (0) | 2020.11.24 |
파이썬 값 수를 기준으로 Pandas DataFrame을 어떻게 필터링합니까? (0) | 2020.11.24 |
댓글