【发布时间】:2015-09-11 15:21:00
【问题描述】:
我想知道这一定是一种在没有 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]
有什么建议吗??
【问题讨论】:
-
为什么要避免 for 循环?
-
@That1Guy:Python for 循环是在 Numpy 数组上操作的一种相当慢的方式。 Numpy 的想法是进行向量化的高级调用,因此实际的循环可以在优化的 C 代码中发生。
标签: python for-loop numpy matrix