提取numpy数组中的特定列
这是一个简单的问题,但是说我有一个MxNmatrix。 我想要做的就是提取特定的列并将它们存储在另一个numpy数组中,但是我得到无效的语法错误。 这里是代码:
extractedData = data[[:,1],[:,9]].
看来上面的线应该足够了,但我猜不是。 我环顾四周,但无法find任何关于这个特定场景的语法。
我假设你想要列1
和9
? 那是
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])