numpy 将矩阵乘以1D阵列

s6fujrry  于 2023-01-05  发布在  其他
关注(0)|答案(1)|浏览(129)

我需要将一个矩阵,例如维数为[3x2]的numpy数组A乘以维数为[1x4]的1d数组B,以产生4个[3x2]矩阵的数组C,即[4 x [3x2] ]
例如C[0]是一个[3x2]矩阵= AB[0]
C[1] = A
B[1]
等等。
没有for i in B循环,而是作为1行操作。

ubof19bj

ubof19bj1#

使用广播:

>>> a = np.arange(6).reshape(3, 2)
>>> a
array([[0, 1],
       [2, 3],
       [4, 5]])
>>> b = np.arange(4).reshape(1, 4)
>>> b
array([[0, 1, 2, 3]])
>>> c = b[None].T * a # Multiply (4, 1, 1) with (3, 2)
>>> c
array([[[ 0,  0],
        [ 0,  0],
        [ 0,  0]],

       [[ 0,  1],
        [ 2,  3],
        [ 4,  5]],

       [[ 0,  2],
        [ 4,  6],
        [ 8, 10]],

       [[ 0,  3],
        [ 6,  9],
        [12, 15]]])
>>> c.shape
(4, 3, 2)

相关问题