这是一个简单的问题,但假设我有一个MxN矩阵。所有我想做的是提取特定的列,并将它们存储在另一个numpy数组中,但我得到无效的语法错误。 代码如下:
extractedData = data[[:,1],[:,9]].
似乎上面这句话就足够了,但我觉得不行。我四处寻找,但没有找到任何关于这个特定场景的语法。
这是一个简单的问题,但假设我有一个MxN矩阵。所有我想做的是提取特定的列,并将它们存储在另一个numpy数组中,但我得到无效的语法错误。 代码如下:
extractedData = data[[:,1],[:,9]].
似乎上面这句话就足够了,但我觉得不行。我四处寻找,但没有找到任何关于这个特定场景的语法。
当前回答
你也可以使用extractedData=data([:,1],[:,9])
其他回答
我猜你想要第1列和第9列?
若要一次选择多个列,请使用
X = data[:, [1, 9]]
若要一次选择一个,请使用
x, y = data[:, 1], data[:, 9]
名称:
data[:, ['Column Name1','Column Name2']]
你可以从data.dtype.names…
当你使用这样的列表从N-D数组中选择列时,还有一件事你应该注意:
data[:,:,[1,9]]
如果您正在删除一个维度(例如,通过只选择一行),结果数组将(由于某种原因)被打乱。所以:
print data.shape # gives [10,20,30]
selection = data[1,:,[1,9]]
print selection.shape # gives [2,20] instead of [20,2]!!
你也可以使用extractedData=data([:,1],[:,9])
我想指出的一件事是,如果你想提取的列的数量是1,得到的矩阵将不是你可能期望的mx矩阵,而是一个包含你提取的列的元素的数组。
要将其转换为矩阵,应在生成的数组上使用重塑(M,1)方法。
假设你想用这个代码片段获取列1和列9,它应该是:
extractedData = data[:,[1,9]]