문제

어레이가있는 작업 내에서 다른 사람의 교체 값 또는 배열 내에서 검색하고 다른 값으로 값을 바꾸는 방법으로

예를 들어:

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
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top