我想知道这一定是在没有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]
有什么建议??
要利用广播的优势,您必须fact
在正确的位置插入新的坐标轴:
a *= fact[:, np.newaxis, :, np.newaxis, np.newaxis]
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句