2014-02-24 3 views
2

내가지수는 파이썬 방법으로 목록을 사용하여 NumPy와 배열

list = [0,2,1] 

나는 기본적으로 하나의 라이너는 인덱스 요소를 추출 할

array = [[2,3,4],[5,6,7],[8,9,10]] 

같은 파이썬 배열과 목록을 가지고 상상

: 주어진 어레이리스트 목록 예컨대

의해 주어진 배열로부터

내 kneejerk 옵션

result = array[:, list] 

했다 그러나 트릭을 할 수있는 몇 가지 색인이 있다면 그게 내가 그것을해야주기 위해, 나는 단지 알고 싶은 것을 알고

를 작동하지 않았다

답변

2

이와 비슷한?

In [24]: a 
Out[24]: 
array([[ 2, 3, 4],                    
     [ 5, 6, 7],                    
     [ 8, 9, 10]])                    

In [25]: lis 
Out[25]: [0, 2, 1] 

In [26]: a[np.arange(len(a)), lis]                
Out[26]: array([2, 7, 9]) 
+0

예, 나는 어째서 왜 그런 일이 일어날 지 궁금하지만, 모두 인덱싱을하지는 않았다. –

+0

@Leonpalafox 다차원 배열의 색인 생성 작동 방식을 확인하십시오. http://docs.scipy.org/doc/numpy/user/basics.indexing.html#indexing-multi- dimensional-arrays –

0

사용 enumerate는 얻을이 컬렉션을 (zip(*...))를 행 인덱스를 생성하고 압축을 해제하는 행 인덱스 (범위 [0, len(list)))와 열 인덱스 (lis) : 정확히 같은

a[zip(*enumerate(lis))]