4

我想将矩阵的每一列添加到一个 numpy 数组中,但numpy.broadcast只允许将矩阵的每一行添加到一个数组中。我怎样才能做到这一点?

我的想法是首先转置矩阵,然后将其添加到数组中,然后转回,但这使用了两个转置。有没有直接做的功能?

4

1 回答 1

3

您可以使用只有一列的第二个矩阵,而不是使用数组:

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.]])
于 2016-08-15T09:23:36.573 回答