如何按列广播数组?
How to broadcast an array by columns?
我想将矩阵的每一列添加到 numpy 数组,但 numpy.broadcast
只允许将矩阵的每一行添加到数组。我该怎么做?
我的想法是先转置矩阵然后将其添加到数组然后转回,但这使用了两个转置。有直接做的功能吗?
您可以使用只有一列的第二个矩阵来代替数组:
matrix = np.matrix(np.zeros((3,3)))
array = np.matrix([[1],[2],[3]])
matrix([[1],
[2],
[3]])
matrix + array
matrix([[ 1., 1., 1.],
[ 2., 2., 2.],
[ 3., 3., 3.]])
如果你最初有一个数组,你可以像这样重塑它:
a = np.asarray([1,2,3])
matrix + np.reshape(a, (3,1))
matrix([[ 1., 1., 1.],
[ 2., 2., 2.],
[ 3., 3., 3.]])
我想将矩阵的每一列添加到 numpy 数组,但 numpy.broadcast
只允许将矩阵的每一行添加到数组。我该怎么做?
我的想法是先转置矩阵然后将其添加到数组然后转回,但这使用了两个转置。有直接做的功能吗?
您可以使用只有一列的第二个矩阵来代替数组:
matrix = np.matrix(np.zeros((3,3)))
array = np.matrix([[1],[2],[3]])
matrix([[1],
[2],
[3]])
matrix + array
matrix([[ 1., 1., 1.],
[ 2., 2., 2.],
[ 3., 3., 3.]])
如果你最初有一个数组,你可以像这样重塑它:
a = np.asarray([1,2,3])
matrix + np.reshape(a, (3,1))
matrix([[ 1., 1., 1.],
[ 2., 2., 2.],
[ 3., 3., 3.]])