programing

numpy 배열에서 모든 NaN 값의 인덱스 목록을 가져오는 방법은 무엇입니까?

javamemo 2023. 7. 24. 22:09
반응형

numpy 배열에서 모든 NaN 값의 인덱스 목록을 가져오는 방법은 무엇입니까?

자 말해봐요, 나는 다음과 같이 정의된 numpy 배열을 가지고 있습니다.

[[1,2,3,4],
[2,3,NaN,5],
[NaN,5,2,3]]

이제 누락된 값의 모든 인덱스를 포함하는 목록을 원합니다. 즉,[(1,2),(2,0)]이 경우에는

제가 그렇게 할 수 있는 방법이 없을까요?

np.는 np.arghwhere와 결합된 입니다.

x = np.array([[1,2,3,4],
              [2,3,np.nan,5],
              [np.nan,5,2,3]])
np.argwhere(np.isnan(x))

출력:

array([[1, 2],
       [2, 0]])

를 사용하여 다음에 해당하는 부울 조건을 일치시킬 수 있습니다.Nan배열의 값 및map목록을 생성할 각 결과tuples.

>>>list(map(tuple, np.where(np.isnan(x))))
[(1, 2), (2, 0)]

부터x!=x에서 동일한 부울 배열을 반환합니다.np.isnan(x)(왜냐하면np.nan!=np.nan돌아올 것입니다True), 다음과 같이 쓸 수도 있습니다.

np.argwhere(x!=x)

하지만, 저는 여전히 글을 쓰는 것을 추천합니다.np.argwhere(np.isnan(x))더 읽기 쉽기 때문에.저는 이 답변에 코드를 작성하는 다른 방법을 제공하려고 합니다.

언급URL : https://stackoverflow.com/questions/37754948/how-to-get-the-indices-list-of-all-nan-value-in-numpy-array

반응형