【发布时间】:2023-01-04 23:48:38
【问题描述】:
我需要乘以一个矩阵,例如一个尺寸为 [3x2] 的 numpy 数组 A 乘以一维数组 B,尺寸为 [1x4] 以生成 4 [3x2] 矩阵的数组 C,即 [4 x [3x2] ]
因此,例如 C[0] 将是一个 [3x2] 矩阵 = A*B[0]
C[1] = A*B[1]
等等
在 B 循环中没有 for i,但作为 1 行操作。
【问题讨论】:
我需要乘以一个矩阵,例如一个尺寸为 [3x2] 的 numpy 数组 A 乘以一维数组 B,尺寸为 [1x4] 以生成 4 [3x2] 矩阵的数组 C,即 [4 x [3x2] ]
因此,例如 C[0] 将是一个 [3x2] 矩阵 = A*B[0]
C[1] = A*B[1]
等等
在 B 循环中没有 for i,但作为 1 行操作。
【问题讨论】:
使用广播:
>>> 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)
【讨论】: