矩阵索引,为每一行提取不同的列

时间:2018-09-16 20:15:56

标签: python numpy broadcasting

示例在底部带有小数组。 我有一个尺寸为MxN(N> 100)的numpy数组数据和一个尺寸为Mx100的较小数组A。

数组A包含数据数组的列索引。

我想提取由A中的索引给出的所有数据列。 问题在于,每行A中的索引都不相同。

我尝试过

 data[:,A]

但这会返回一个MxMx100数组。 我只想要一个Mx100阵列。 我可以在for循环中执行此操作,但这需要很长时间。 如何正确执行此操作?

示例:

data=np.array([[1,2,3],[4,5,6],[7,8,9]])
array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
A=np.array([[0,1],[1,2],[0,2]])

我要提取: 第一行:索引0和1。第二行:索引1和2。第三行:索引0和2

所需结果:

array([[1,2],
[5,6],
[7,9]])

1 个答案:

答案 0 :(得分:1)

使用Applicative

broadcasting