1

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

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

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

4

1 回答 1

2

你可以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.]])
于 2013-09-08T17:46:48.187 回答