문제
어레이가있는 작업 내에서 다른 사람의 교체 값 또는 배열 내에서 검색하고 다른 값으로 값을 바꾸는 방법으로
예를 들어:
array ([[NaN, 1., 1., 1., 1., 1., 1.]
[1., NaN, 1., 1., 1., 1., 1.]
[1., 1., NaN, 1., 1., 1., 1.]
[1., 1., 1., NaN, 1., 1., 1.]
[1., 1., 1., 1., NaN, 1., 1.]
[1., 1., 1., 1., 1., NaN, 1.]
[1., 1., 1., 1., 1., 1., NaN]])
NAN을 0으로 대체 할 수있는 곳. 응답에 감사드립니다.
해결책
당신은 이것을 할 수 있습니다 :
import numpy as np
x=np.array([[np.NaN, 1., 1., 1., 1., 1., 1.],[1., np.NaN, 1., 1., 1., 1., 1.],[1., 1., np.NaN, 1., 1., 1., 1.], [1., 1., 1., np.NaN, 1., 1., 1.], [1., 1., 1., 1., np.NaN, 1., 1.],[1., 1., 1., 1., 1., np.NaN, 1.], [1., 1., 1., 1., 1., 1., np.NaN]])
x[np.isnan(x)]=0
np.isnan(x)
부울 배열을 반환합니다 True
대체 어디에 x
~이다 NaN
.
x[ boolean_array ] = 0
고용 멋진 인덱싱 부울 배열이있는 곳마다 값 0을 할당하려면 True
.
멋진 인덱싱 등에 대한 훌륭한 소개는 또한 참조하십시오. Numpybook.
다른 팁
요즘에는 특별한 기능이 있습니다.
a = numpy.nan_to_num(a)
질문의 예제 배열은 다음과 같습니다.
import numpy as np
a = np.where(np.eye(7), np.nan, 1)
당신은 사용할 수 있습니다 Numpy. 어디서 그리고 numpy.isnan 함수 새 배열을 생성합니다 b
:
b = np.where(np.isnan(a), 0, a)
또는 내장 기능을 사용하여 직접 수정하십시오 a
정렬:
np.place(a, np.isnan(a), 0) # returns None
제휴하지 않습니다 StackOverflow