假设我有
a = array([[1, 2],
[3, 4]])
和
b = array([1,1])
我想在索引a中使用b,即做[b]并得到4而不是[[3,4],[3,4]]
我可以做到
a[tuple(b)]
有没有更好的方法呢?
谢谢
假设我有
a = array([[1, 2],
[3, 4]])
和
b = array([1,1])
我想在索引a中使用b,即做[b]并得到4而不是[[3,4],[3,4]]
我可以做到
a[tuple(b)]
有没有更好的方法呢?
谢谢
根据numpy教程:
a[tuple(b)]
是这样做的正确方法:
http://www.scipy.org/Tentative_NumPy_Tutorial#head-3f4d28139e045a442f78c5218c379af64c2c8c9e
假设您要访问的子向量 a
存储n个索引对 b
像这样:
b = array([[0, 0],
...
[1, 1]])
这可以按如下方式完成:
a[b[:,0], b[:,1]]
对于单对索引向量,这将更改为 a[b[0],b[1]]
,但我猜 tuple
方法更容易阅读,因此更可取。