2014-11-08 1 views
0

저는 numpy 배열을 가지고 있으며 공통 속성을 확인하는 요소의 인덱스를 얻고 싶습니다. 예를 들어, 배열이 np.array([1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1])이고 모든 요소의 색인을 1과 같게한다고 가정하면 출력은 [0, 4, 5, 8, 10, 14]이됩니다.Python에서 공통 속성을 가진 요소의 인덱스 선택

나는 다음과 같은 절차

def find_indexes(A): 
    res = [] 
    for i in range(len(A)): 
     if A[i] == 1: 
      res.append(i) 
    return res 

이 일을 더 "pythonesque"방법이 있나요를 정의? 부울 색인과 비슷한 것이 있으면 구체적으로는, 내가 궁금 : 오히려 요소 자체보다 요소의 인덱스를 반환

A[A>=1] 

.

답변

0

np.where을 사용하십시오. 순수한 파이썬

import numpy as np 
    x = np.array(np.array([1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1]) 
    indices, = np.where(x == 1) 
    print(indices) 
0

사용 numpy.where

arr = np.array([1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1]) 
print np.where(arr == 1) 
(array([ 0, 4, 5, 8, 10, 14]),) 
0

목록 이해 :

AR = [I 전 범위 (LEN (a)) 만약 [I] == 1]

관련 문제