在Python中从矩阵中选择列向量

在Python中从矩阵中选择列向量,python,numpy,matrix,indexing,Python,Numpy,Matrix,Indexing,我想在Python/numpy中为矩阵中的列向量编制索引,并将其作为列向量而不是1D数组返回 x = np.array([[1,2],[3,4]]) x[:,1] >array([2, 4]) 给予 np.转置(x[:,1]) 这不是一个解决办法。在numpy.transpose文档之后,这将返回一个行向量(1-D数组)。几个选项- x[:,[1]] x[:,None,1] x[:,1,None] x[:,1][:,None] x[:,1].reshape(-1,1) x[None,:,

我想在Python/numpy中为矩阵中的列向量编制索引,并将其作为列向量而不是1D数组返回

x = np.array([[1,2],[3,4]])
x[:,1]
>array([2, 4])
给予

np.转置(x[:,1])

这不是一个解决办法。在
numpy.transpose
文档之后,这将返回一个行向量(1-D数组)。

几个选项-

x[:,[1]]
x[:,None,1]
x[:,1,None]
x[:,1][:,None]
x[:,1].reshape(-1,1)
x[None,:,1].T

谢谢为什么
x[:,[1]]
有效,而
x[:,1]
无效?@tomka对于
[1]
索引,基本上我们传递的索引列表恰好只包含一个元素,因此它保持了维度不变。使用
1
作为标量索引,维度将沿索引轴减少,切片的DIM数将减少一个。我在这里找到了一个有用的链接: