xst*_*ter 20 python numpy multidimensional-array
假设我有
a = array([[1, 2],
[3, 4]])
Run Code Online (Sandbox Code Playgroud)
和
b = array([1,1])
Run Code Online (Sandbox Code Playgroud)
我想在索引a中使用b,即做[b]并得到4而不是[[3,4],[3,4]]
我可以做到
a[tuple(b)]
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法呢?
谢谢
Jos*_*del 19
根据numpy教程:
a[tuple(b)]
Run Code Online (Sandbox Code Playgroud)
是这样做的正确方法:
http://www.scipy.org/Tentative_NumPy_Tutorial#head-3f4d28139e045a442f78c5218c379af64c2c8c9e
假设您要访问的子向量a具有n个索引对,其存储方式b如下:
b = array([[0, 0],
...
[1, 1]])
Run Code Online (Sandbox Code Playgroud)
可以按照以下步骤进行:
a[b[:,0], b[:,1]]
Run Code Online (Sandbox Code Playgroud)
对于单对索引向量,它变为a[b[0],b[1]],但是我猜想该tuple方法更易于阅读,因此更可取。