Python 广播到numpy矩阵时出错

Python 广播到numpy矩阵时出错,python,numpy,matrix,Python,Numpy,Matrix,我知道这是关于stackoverflow的一个比较常见的话题,但是我找不到我想要的答案。基本上,我正在尝试编写非常高效的代码(我有相当大的数据集)来从矩阵中获取特定列的数据。以下是我到目前为止的情况。它给了我这个错误:无法将输入数组从形状(2947,1)广播到形状(2947) 也许这个简单的例子会有所帮助: In [70]: data=np.arange(12).reshape(3,4) In [71]: header={'a':0,'b':1,'c':2} In [72]: col=['c',

我知道这是关于stackoverflow的一个比较常见的话题,但是我找不到我想要的答案。基本上,我正在尝试编写非常高效的代码(我有相当大的数据集)来从矩阵中获取特定列的数据。以下是我到目前为止的情况。它给了我这个错误:无法将输入数组从形状(2947,1)广播到形状(2947)


也许这个简单的例子会有所帮助:

In [70]: data=np.arange(12).reshape(3,4)
In [71]: header={'a':0,'b':1,'c':2}
In [72]: col=['c','a']
In [73]: index=[header[i] for i in col]

In [74]: index
Out[74]: [2, 0]

In [75]: data[:,index]
Out[75]: 
array([[ 2,  0],
       [ 6,  4],
       [10,  8]])

数据
是某种2D数组,
标题
是一个将名称映射到列号的字典。使用输入
,我构建了一个列索引列表。您可以一次选择所有列,而不是逐个选择。

使用一些示例输入数据并告诉我们预期的输出?将其转换为简单的函数或脚本,而不是类方法。并通过简单的示例定义输入内容(
matrix_data
heast2matrix
)。现在,你迫使我们从你如何使用它们来推断这些物品的属性。
In [70]: data=np.arange(12).reshape(3,4)
In [71]: header={'a':0,'b':1,'c':2}
In [72]: col=['c','a']
In [73]: index=[header[i] for i in col]

In [74]: index
Out[74]: [2, 0]

In [75]: data[:,index]
Out[75]: 
array([[ 2,  0],
       [ 6,  4],
       [10,  8]])