这是一个简单的问题,但假设我有一个MxN矩阵。所有我想做的是提取特定的列,并将它们存储在另一个numpy数组中,但我得到无效的语法错误。 代码如下:

extractedData = data[[:,1],[:,9]]. 

似乎上面这句话就足够了,但我觉得不行。我四处寻找,但没有找到任何关于这个特定场景的语法。


当前回答

我认为这里的解决方案不再使用python版本的更新,一种方法是使用新的python函数来实现它:

extracted_data = data[['Column Name1','Column Name2']].to_numpy()

这会给你想要的结果。

您可以在这里找到文档:https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.to_numpy.html#pandas.DataFrame.to_numpy

其他回答

如果你只想提取一些列:

idx_IN_columns = [1, 9]
extractedData = data[:,idx_IN_columns]

如果你想排除特定的列:

idx_OUT_columns = [1, 9]
idx_IN_columns = [i for i in xrange(np.shape(data)[1]) if i not in idx_OUT_columns]
extractedData = data[:,idx_IN_columns]

你也可以使用extractedData=data([:,1],[:,9])

我想指出的一件事是,如果你想提取的列的数量是1,得到的矩阵将不是你可能期望的mx矩阵,而是一个包含你提取的列的元素的数组。

要将其转换为矩阵,应在生成的数组上使用重塑(M,1)方法。

我认为这里的解决方案不再使用python版本的更新,一种方法是使用新的python函数来实现它:

extracted_data = data[['Column Name1','Column Name2']].to_numpy()

这会给你想要的结果。

您可以在这里找到文档:https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.to_numpy.html#pandas.DataFrame.to_numpy

假设你想用这个代码片段获取列1和列9,它应该是:

extractedData = data[:,[1,9]]