使用另一个numpy数组索引numpy数组

时间:2011-04-01 01:40:36

标签: python multidimensional-array numpy

假设我有

a = array([[1, 2],
           [3, 4]])

b = array([1,1])

我想在索引a中使用b,即做[b]并得到4而不是[[3,4],[3,4]]

我可以做

a[tuple(b)]

有更好的方法吗?

由于

2 个答案:

答案 0 :(得分:15)

根据numpy教程:

a[tuple(b)] 

是这样做的正确方法:

http://www.scipy.org/Tentative_NumPy_Tutorial#head-3f4d28139e045a442f78c5218c379af64c2c8c9e

答案 1 :(得分:5)

假设您要访问a的子向量,其中n个索引对存储在b中,如下所示:

b = array([[0, 0],
       ...
       [1, 1]])

这可以按如下方式完成:

a[b[:,0], b[:,1]]

对于单对索引向量,它会更改为a[b[0],b[1]],但我认为tuple方法更易于阅读,因此更受欢迎。