在numpy数组中提取特定列
这是个简单的问题,假设我有一个 MxN 的矩阵。我想做的就是提取特定的列,然后把它们存储到另一个 numpy 数组里,但我遇到了无效的语法错误。
这是我的代码:
extractedData = data[[:,1],[:,9]].
看起来上面的代码应该可以正常工作,但我想可能不是这样。我查了一下,但没找到关于这种特定情况的语法问题。
11 个回答
18
如果你只想提取某些列:
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]
38
假设你想用那段代码获取第1列和第9列的数据,那么应该这样写:
extractedData = data[:,[1,9]]
389
我猜你是想选择第 1
列和第 9
列,对吧?
如果你想一次选择多个列,可以使用:
X = data[:, [1, 9]]
如果你想一次选择一列,可以使用:
x, y = data[:, 1], data[:, 9]
如果你想用名字来选择:
data[:, ['Column Name1','Column Name2']]
你可以通过 data.dtype.names
来获取这些名字……