在评估 Numpy 中的表达式时,我发现了一个奇怪的性能差异。
我执行了以下代码:
import numpy as np
myarr = np.random.uniform(-1,1,[1100,1100])
然后
%timeit np.exp( - 0.5 * (myarr / 0.001)**2 )
>> 184 ms ± 301 µs per loop (mean ± std. dev. of 7 runs, 1 loop each)
和
%timeit np.exp( - 0.5 * (myarr / 0.1)**2 )
>> 12.3 ms ± 34.3 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)
在第二种情况下,计算速度快了近 15 倍!请注意,唯一的区别是因子为 0.1 或 0.001。
这种行为的原因是什么?我可以更改某些内容以使第一次计算与第二次计算一样快吗?
ABOUTYOU
哈士奇WWW
相关分类