用另一个2d数组foo索引2d数组bar,其中foo包含bar对应列的行索引

Ben

最好用一个例子来解释。

foo = np.array([
    [0,0],
    [0,1],
    [1,0],
    [1,1]
])

bar = np.array([
    [10,12],
    [5,11]
])

desired = np.stack((bar[:, 0][foo[:, 0]], bar[:, 1][foo[:, 1]]), axis = 1)
array([[10, 12],
       [10, 11],
       [ 5, 12],
       [ 5, 11]])

因此,如果考虑foo的第一列,[0, 0, 1, 1]并使用这些索引从bar的第一列中选​​择元素[10, 5],则会得到我想要的结果的第一列[10, 10, 5, 5]

问题是,我在弄清楚如何将其概括为支持未知数量的foo和bar的行和列时遇到麻烦(速度对我很重要)。

迪卡卡

只需foo对行索引使用整数索引,对列索引使用范围为范围的范围数组foo-

bar[foo,np.arange(foo.shape[1])]

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用NumPy从另一个数组及其索引创建2D数组

从另一个数组更新numpy 2d数组索引

如何查找在另一个2d数组中出现的2d numpy数组的索引

从numpy中另一个多维数组中的2D索引数组创建多维数组

numpy将2d数组的列分配为另一个数组的索引列的总和

从另一个2D索引数组重新排列2D numpy数组的最有效方法

使用另一个2D数组作为索引将值分配给2D数组

用另一个列表索引2D列表

使用 numpy 构造一个数组,其中的行从另一个 2D 数组中提取为 2x2 块

根据另一个2D数组重新排序2D数组

如何使用布尔行的2D数组过滤另一个2D数组?

从2D数组中选择不在另一个2D数组中的行

numpy:在不考虑顺序的情况下,在另一个2D数组中查找2D数组的对应关系

给定另一个指定索引归零的数组,如何将 2D numpy 数组中的特定条目归零?

numpy索引嵌套数组,其中包含来自另一个数组的索引

numpy:索引3D数组,将最后一个轴的索引存储在2D数组中

将2d字符数组复制到另一个2d字符数组

算法-在另一个2D数组中查找2D数组的存在

将2d数组的元素乘以另一个2d数组的元素的方法

针对2d数组的每一行对另一个2d数组执行数学运算

python使用较小的2D数组与另一个较大的数组进行映射

将2D数组存储在另一个数组中-Java

在另一个2D数组中找到二维数组中两列元素的对应关系

numpy:在2D数组的每一行中找到值的第一个索引

用2个索引列表索引2D Numpy数组

如果最后一个轴索引小于另一个2D数组中的值,则将3D numpy数组的值设置为0

Java 2D数组无法将值写入最后一个值索引

显示2D数组错误严格标准的最后一个索引键

逻辑索引一个numpy数组后保持2D结构