반응형
두 개의 numpy 배열이 있고 하나를 다른 배열로 나누고 동시에 제수가 0 인 항목이 0으로 대체되어야하는지 확인하고 싶습니다.
그래서 다음과 같이합니다.
log_norm_images = np.where(b_0 > 0, np.divide(diff_images, b_0), 0)
이것은 나에게 다음과 같은 런타임 경고를 제공합니다.
RuntimeWarning: invalid value encountered in true_divide
이제 무슨 일이 일어나고 있는지보고 싶었고 다음을 수행했습니다.
xx = np.isfinite(diff_images)
print (xx[xx == False])
xx = np.isfinite(b_0)
print (xx[xx == False])
그러나이 두 가지 모두 빈 배열을 반환합니다. 즉, 배열의 모든 값이 유한하다는 것을 의미합니다. 따라서 잘못된 값의 출처가 확실하지 않습니다. np.where 함수에서 b_0> 0을 확인하면 0으로 나누기를 처리한다고 가정합니다.
두 배열의 모양은 (96, 96, 55, 64) 및 (96, 96, 55, 1)입니다.
해결 방법
NAN
, INF
또는 NINF
가 어딘가에 떠있을 수 있습니다. 이 시도:
np.isfinite(diff_images).all()
np.isfinite(b_0).all()
둘 중 하나 또는 둘 모두가 False
를 반환하는 경우 런타임 오류의 원인 일 수 있습니다.
참조 페이지 https://stackoverflow.com/questions/27842884
반응형
'파이썬' 카테고리의 다른 글
파이썬 문자열의 시작에서 n 개의 문자 제거 (0) | 2020.12.02 |
---|---|
파이썬 다중 처리 오류와의 또 다른 혼동, '모듈'개체에 'f'속성이 없습니다. (0) | 2020.12.02 |
파이썬 : 디렉토리를 두 단계 위로 가져 오기 (0) | 2020.12.02 |
파이썬 python RuntimeWarning이 터미널로 인쇄되는 것을 어떻게 차단합니까? (0) | 2020.12.02 |
파이썬 ±에 대한 더하기 / 빼기 연산자 (0) | 2020.12.02 |
댓글