我有很多 3*2 矩阵(A1、A2、A3..),每个 3*2 都是平局。在两次抽奖的情况下,我们有一个 3*4(我们水平堆叠 A1、A2 的每次抽奖)。显然,对我来说,将 3*4 矩阵 (A) 绘制为更大的矩阵一次比一遍又一遍地绘制 3*2 更容易。
但我需要对每个绘图(每个 A1、A2...)执行矩阵乘法到矩阵 B。比如 A1*B 和 A2*B ...AN*B
#each draw of the 3*2 matrix
A1 = np.array([[ 0, 1],
[ 4, 5],
[ 8, 9]])
A2 = np.array([[ 2, 3],
[ 6, 7],
[ 10, 11]])
# A is [A1,A2]
# Easier to draw A once for all (the larger matrix)
A = np.array([[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11]])
b = np.array([[ 0, 1],
[ 4, 5]
])
desired output
array([[ 4, 5, 12, 17],
[20, 29, 28, 41],
[36, 53, 44, 65]])
请您参考如下方法:
您可以将矩阵 A 整形为 2 列,使其符合 b,进行矩阵乘法,然后再整形:
np.dot(A.reshape(-1, 2), b).reshape(3, -1)
#array([[ 4, 5, 12, 17],
# [20, 29, 28, 41],
# [36, 53, 44, 65]])
