Python 将数组的每个数字与其对齐的矩阵行相乘(单位:numpy)?
假设我有一个arr=(n项数组)和一个矩阵mat=nxm矩阵。我想将arr的每个项目与其矩阵mat的对齐行相乘。我如何在numpy做到这一点?您可以使用广播:Python 将数组的每个数字与其对齐的矩阵行相乘(单位:numpy)?,python,numpy,Python,Numpy,假设我有一个arr=(n项数组)和一个矩阵mat=nxm矩阵。我想将arr的每个项目与其矩阵mat的对齐行相乘。我如何在numpy做到这一点?您可以使用广播: M = np.arange(1, 13).reshape(3, 4) print M # [[ 1 2 3 4] # [ 5 6 7 8] # [ 9 10 11 12]] a = np.arange(1, 4) print a # [1, 2, 3] # we broadcast a (3, 1) vector ag
M = np.arange(1, 13).reshape(3, 4)
print M
# [[ 1 2 3 4]
# [ 5 6 7 8]
# [ 9 10 11 12]]
a = np.arange(1, 4)
print a
# [1, 2, 3]
# we broadcast a (3, 1) vector against a (3, 4) matrix
print a[...,None].shape, M.shape
# (3, 1) (3, 4)
print a[..., None] * M
# [[ 1 2 3 4]
# [10 12 14 16]
# [27 30 33 36]]
你能给演示输入和输出澄清一下吗?你是说矩阵与数组相乘吗?(最终结果应该是什么维度?)。您可以使用
arr[…,None]*mat
(或arr[None,…]*mat
沿另一个轴相乘)