假设我有
a = array([[1, 2],
[3, 4]])
和
b = array([1,1])
我想在索引a中使用b,即做[b]并得到4而不是[[3,4],[3,4]]
我可以做
a[tuple(b)]
有更好的方法吗?
由于
答案 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
方法更易于阅读,因此更受欢迎。