Python 은 numpy 의 nan 과 inf,nan 을 대응 하 는 평균 값 으로 바 꿉 니 다.
inf:infinity;무궁 하 다
numpy 의 nan 과 inf 는 모두 float 형식 입 니 다.
t!=t bool 형식의 배열(행렬)을 되 돌려 줍 니 다.
np.count_nonzero()는 배열 의 비 0 요소 개 수 를 되 돌려 줍 니 다.true 의 개수.
np.isnan()은 bool 형식의 배열 을 되 돌려 줍 니 다.
그럼 문제 가 생 겼 습 니 다.한 그룹의 데이터 에서 단순히 nan 을 0 으로 바 꾸 는 것 이 적당 합 니까?어떤 영향 을 미 칠 까?
예 를 들 어 모두 0 으로 교체 한 후에 교체 전의 평균 값 이 0 보다 크 면 교체 후의 평균 값 은 반드시 작 아 질 것 이다.그래서 더욱 일반적인 방식 은 부족 한 수 치 를 평균 값(중간 값)으로 교체 하거나 부족 한 값 이 있 는 줄 을 직접 삭제 하 는 것 이다.
demo.py(numpy,배열 의 nan 을 대응 하 는 평균 값 으로 바 꿉 니 다):
# coding=utf-8
import numpy as np
def fill_ndarray(t1):
for i in range(t1.shape[1]): # ( nan )
temp_col = t1[:, i] #
nan_num = np.count_nonzero(temp_col != temp_col)
if nan_num != 0: # 0, nan
temp_not_nan_col = temp_col[temp_col == temp_col] # nan ndarray
# nan , nan
temp_col[np.isnan(temp_col)] = temp_not_nan_col.mean() # mean() 。
return t1
if __name__ == '__main__':
t1 = np.array([[ 0., 1., 2., 3., 4., 5.],
[ 6., 7., np.nan, np.nan, np.nan, np.nan],
[12., 13., 14., 15., 16., 17.],
[18., 19., 20., 21., 22., 23.]])
t1 = fill_ndarray(t1) # nan
print(t1)
'''
[[ 0. 1. 2. 3. 4. 5.]
[ 6. 7. 12. 13. 14. 15.]
[12. 13. 14. 15. 16. 17.]
[18. 19. 20. 21. 22. 23.]]
'''
보충 지식:numpy 가 배열 의 평균 을 구 할 때 nan 값 을 무시 하 는 방법프롤로그:numpy 배열 에 평균 np.mean()또는 배열 의 최대 최소 값 np.max()/np.min()을 구 할 때 배열 에 nan 이 있 으 면 구 하 는 결 과 는 nan 입 니 다.그러면 그 중의 nan 을 어떻게 무시 해 야 합 니까?이 때 는 다른 방법 을 사용 해 야 합 니 다:np.nanmean(),np.nanmax(),np.nanmin().
np.mean()효과 사용 하기
np.nanmean()효과 사용 하기
이 파 이 썬 은 numpy 의 nan 과 inf,nan 을 대응 하 는 평균 값 으로 바 꾸 는 것 이 바로 소 편 이 여러분 에 게 공유 하 는 모든 내용 입 니 다.참고 하 시기 바 랍 니 다.여러분 들 도 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Python의 None과 NULL의 차이점 상세 정보그래서 대상 = 속성 + 방법 (사실 방법도 하나의 속성, 데이터 속성과 구별되는 호출 가능한 속성 같은 속성과 방법을 가진 대상을 클래스, 즉 Classl로 분류할 수 있다.클래스는 하나의 청사진과 같아서 하나의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.