提取numpy数组中的特定列

这是一个简单的问题,但是说我有一个MxNmatrix。 我想要做的就是提取特定的列并将它们存储在另一个numpy数组中,但是我得到无效的语法错误。 这里是代码:

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

看来上面的线应该足够了,但我猜不是。 我环顾四周,但无法find任何关于这个特定场景的语法。

我假设你想要列19 ? 那是

 data[:, [1, 9]] 

假设您想要使用该代码片段获取第1列和第9列,那应该是:

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

如果你只想提取一些列:

 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] 

我想指出的一件事情是,如果要提取的列数为1,则得到的matrix不会像您所期望的那样是Mx1matrix ,而是包含您提取的列的元素的数组。

要将其转换为Matrix 应在结果数组上使用重塑(M,1)方法

你可以使用extracted_data = data.ix [:,['Column1','Column2']]

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