在numpy数组中提取特定列

235 投票
11 回答
480498 浏览
提问于 2025-04-17 07:44

这是个简单的问题,假设我有一个 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 来获取这些名字……

撰写回答