2014-02-05 3 views
0

저는 방금 numpy로 시작 했으므로이 문제에 대한 간단한 해결책을 찾을 수 없습니다.numpy 배열로 여러 (행, 열) 조합으로 액세스

간단한 예 :

import numpy as np 

A = np.array([[1, 2], [-1, 5], [0, 12]]) 
x1 = (0, 0) 
x2 = (1, 1) 
x3 = (2, 0) 
A[x1] # 1 
A[x2] # 5 
A[x3] # 0 
내가 돌아 좋아요 것 어떻게 든 그때 A.으로 색인을 사용하는 것이 하나의 객체로 내 튜플 X1, X2, X3를 넣어 싶습니다

[1, 5, 0] - 따라서 제목, numpy 배열에서 여러 (행, 열) 조합에 액세스합니다. 이 작업을 수행하는 쉬운 방법이 있습니까? 여기

내가 무엇을 시도했다입니다 :

A[[x1, x2, x3]] # IndexError 
A[(x1, x2, x3)] # IndexError 
A[x1, x2, x3] # IndexError 
A[np.array((x1, x2, x3))] # Not what I'm trying to do 

하나의 가능성은 다음과 같습니다

tuples = (x1, x2, x3) 
elems = [] 
for tup in tuples: 
    elems.append(A[tup]) 

B = np.array(elems) 
B # [1, 5, 0] as desired 

그러나 루프를 방지하는 방법은 무엇입니까?

답변

3
In [1357]: A[zip(x1,x2,x3)] 
Out[1357]: array([1, 5, 0])