제로

2016-06-21 6 views
0

나는 아래와 같은 NumPy와 배열이 있다고 가정하자있는 NumPy와 배열의 값의 인덱스를 얻을 방법 :제로

array([ 1. , 2. , 0. , 3.4, 0. , 1.1]) 

가 지금은 제로가있는 모든 요소의 인덱스를 싶어합니다. 이유는 그 색인을 얻고 싶습니다 그리고 다른 배열에 대해 동일한 색인에있는 요소를 0으로 변환하고 싶습니다.

0이 아닌 인덱스를 얻으려면 0이 아니거나 argwhere를 사용할 수 있습니다.

b[np.nonzero(a)]=0 

를이 잘이지만은 다음과 같습니다

np.nonzero(a) 

(array([0, 1, 3, 5]),) 

은 그럼 위의 인덱스 목록을 사용하여 아래와 같이 제로에 동일한 인덱스와 b를 배열의 모든 요소를 ​​변환 할 수 있습니다 b를 내가 배열을 말할 수 0이 아닌 인덱스의 경우. 제로 인덱스를 얻는 방법. 방금 인덱싱 목적을 위해 결과를 사용하려면

답변

4

, 그것은 인덱스의 배열보다 부울 배열을 만드는 것이 더 효율적입니다 : 당신은 같은 방법으로 인덱스를 사용한 것입니다 수 있습니다

a == 0 

인덱스의 배열 :

np.nonzero(a == 0) 
: 당신이 정말로 인덱스의 배열을 원하는 경우

b[a == 0] = 0 

, 당신은 부울 배열에 np.nonzero를 호출 할 수 있습니다

np.where도 작동합니다.

+0

니스! 감사!!! – Baktaawar