numpy:使用2D索引数组进行2D数组访问

卢卡斯

我有两个数组,一个是索引对的矩阵,

a = array([[[0,0],[1,1]],[[2,0],[2,1]]], dtype=int)

另一个是要在这些索引处访问的数据矩阵

b = array([[1,2,3],[4,5,6],[7,8,9]])

而且我希望能够使用a的索引来获取的条目b只是做:

>>> b[a]

不起作用,因为它为中的每个条目都给出了一行b a,即

array([[[[1,2,3],
         [1,2,3]],

        [[4,5,6],
         [4,5,6]]],


       [[[7,8,9],
         [1,2,3]],

        [[7,8,9],
         [4,5,6]]]])

当我想在的最后一个轴上使用索引对a给出两个索引时b

array([[1,5],[7,8]])

有没有一种干净的方法可以执行此操作,还是需要以相应的方式重塑和合并列b的列a

在我的实际问题a中,大约有500万个条目,并且b是100 x 100,我想避免for循环。

科尔卡洛尔

实际上,这可行:

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

array([[1, 5], [7, 8]])

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章