我刚刚开始使用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
我想以某种方式将我的元组x1,x2,x3放入一个对象中,然后我将其用于索引到A.我希望这返回[1,5,0] - 因此title,访问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
但有没有办法避免循环?
答案 0 :(得分:3)
In [1357]: A[zip(x1,x2,x3)]
Out[1357]: array([1, 5, 0])