我有一个形状为 (2,76020,2) 的 NumPy 数组。它基本上由两列组成,每列包含 76020 行,每行有两个条目。
我想将每列乘以不同的权重,例如 1 列乘以 3 和 2 列乘以 5。例如:
m =
[3,4][5,8]
[1,2][2,2]
a = [3,5]
我要:
[9,12][25,40]
[3,6][10,10]
我以为我可以只乘以 m*a,但结果却是:
[9,20][15,40]
[3,10][6,10]
这个乘法怎么写?
请您参考如下方法:
是broadcasting的问题: 您必须对齐要乘以的维度,这里是第二个:
m = array(
[[[3,4],[5,8]],
[[1,2],[2,2]]])
a = array([3,5])
print(a[None,:,None].shape, m*a[None,:,None])
"""
(1, 2, 1)
[[[ 9 12]
[25 40]]
[[ 3 6]
[10 10]]]
"""
