避免使用numpy矩阵进行循环

时间:2015-09-11 15:21:01

标签: python for-loop numpy matrix

我想知道如果没有 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]

有什么建议吗?

1 个答案:

答案 0 :(得分:4)

要利用广播,您必须在适当的位置插入fact的新轴:

a *= fact[:, np.newaxis, :, np.newaxis, np.newaxis] 
相关问题