我想知道如果没有 for 循环,必须采取以下措施:
import numpy
from itertools import product as itprod
a = np.arange(120.).reshape(3,2,5,2,2)
fact = np.linspace(1,1.4,15).reshape((3,5))
for i,j in itprod(range(3),range(5)):
a[i,:,j]*= fact[i,j]
有什么建议吗?
答案 0 :(得分:4)
要利用广播,您必须在适当的位置插入fact
的新轴:
a *= fact[:, np.newaxis, :, np.newaxis, np.newaxis]