我希望能够从Python的2D数组中提取一行或一列,以便保留2D形状并可以用于矩阵乘法。但是,我无法在documentation中找到最好的方法。例如,我可以使用
a = np.zeros(shape=(6,6))
创建数组,但是a [:,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.]])
关于python - 如何在Python中创建矩阵或将2D数组转换为矩阵?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18686637/