【发布时间】:2015-12-06 04:30:50
【问题描述】:
我发现 numpy 剪辑功能的性能明显慢于自己使用蒙版(164us 对 74us 左右)。剪辑功能是否在做一些额外的事情,使其花费两倍的时间?
%timeit growth.clip(-maxg, maxg)
10000 loops, best of 3: 164 µs per loop
%timeit growth[np.greater(growth,maxg)] = maxg
10000 loops, best of 3: 37.1 µs per loop
%timeit growth[np.less(growth,-maxg)] = -maxg
10000 loops, best of 3: 37 µs per loop
重置增长数组并以相反的顺序测试后:
%timeit growth[np.less(growth,-maxg)] = -maxg
10000 loops, best of 3: 36.6 µs per loop
%timeit growth[np.greater(growth,maxg)] = maxg
10000 loops, best of 3: 37.3 µs per loop
%timeit growth.clip(-maxg, maxg)
100 loops, best of 3: 150 µs per loop
请注意,增长是一个相当大的数组:
growth.shape
(12964, 7)
【问题讨论】: