首页 文章

numpy如何按列广播

提问于
浏览
4

我想通过np.array添加矩阵的每一列,但是numpy广播只允许通过np.array添加矩阵的每一行 . 怎么做?我的想法是首先转置矩阵然后添加数组然后转置,但它使用两个转置 . 是否有直接执行此功能的功能?

1 回答

  • 1

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

    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.]])
    

相关问题