如何在Python中创建矩阵或将2D数组转换为矩阵?
我希望能够在Python中从2D数组中提取一行或一列,以便它保留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)) >>>
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时,只使用数组更一致、更容易。