如何在Python中创建矩阵或将2D数组转换为矩阵?

如何在Python中创建矩阵或将2D数组转换为矩阵?,python,arrays,numpy,matrix,matrix-multiplication,Python,Arrays,Numpy,Matrix,Matrix Multiplication,我希望能够在Python中从2D数组中提取一行或一列,以便它保留2D形状并可用于矩阵乘法。然而,我无法找到最好的方法。例如,我可以使用 a = np.zeros(shape=(6,6)) 创建一个数组,但是[:,0]的形状为(6,),我不能将其乘以形状为(6,1)的矩阵。对于每次矩阵乘法,是否需要将数组的行或列重塑为矩阵,或者是否有其他方法进行矩阵乘法 您可以直接使用np.matrix: >>> a = np.zeros(shape=(6,6)) >>>

我希望能够在Python中从2D数组中提取一行或一列,以便它保留2D形状并可用于矩阵乘法。然而,我无法找到最好的方法。例如,我可以使用

a = np.zeros(shape=(6,6)) 

创建一个数组,但是[:,0]的形状为(6,),我不能将其乘以形状为(6,1)的矩阵。对于每次矩阵乘法,是否需要将数组的行或列重塑为矩阵,或者是否有其他方法进行矩阵乘法

您可以直接使用
np.matrix

>>> a = np.zeros(shape=(6,6)) 
>>> ma = np.matrix(a)
>>> ma
matrix([[ 0.,  0.,  0.,  0.,  0.,  0.],
        [ 0.,  0.,  0.,  0.,  0.,  0.],
        [ 0.,  0.,  0.,  0.,  0.,  0.],
        [ 0.,  0.,  0.,  0.,  0.,  0.],
        [ 0.,  0.,  0.,  0.,  0.,  0.],
        [ 0.,  0.,  0.,  0.,  0.,  0.]])
>>> ma[0,:]
matrix([[ 0.,  0.,  0.,  0.,  0.,  0.]])
或者您可以使用
np.newaxis

>>> a[0,:][np.newaxis, :]
array([[ 0.,  0.,  0.,  0.,  0.,  0.]])

谢谢我找到了问题的清晰描述。这样做的好处是,使用Numpy和Scipy时,只使用数组更一致、更容易。