我希望能够从 Python 中的 2D 数组中提取一行或一列,以便保留 2D 形状并可用于矩阵乘法。但是,我在文档中找不到如何最好地做到这一点。例如,我可以使用
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.]])