计时结果如下:
lebigot@weinberg ~ % python -m timeit 'abs(3.15)' 10000000 loops, best of 3: 0.146 usec per looplebigot@weinberg ~ % python -m timeit -s 'from numpy import abs as nabs' 'nabs(3.15)'100000 loops, best of 3: 3.92 usec per loop
numpy.abs()比
abs()它还处理Numpy数组要慢:它包含提供这种灵活性的其他代码。
但是,Numpy在数组 上的 速度很快:
lebigot@weinberg ~ % python -m timeit -s 'a = [3.15]*1000' '[abs(x) for x in a]'10000 loops, best of 3: 186 usec per looplebigot@weinberg ~ % python -m timeit -s 'import numpy; a = numpy.empty(1000); a.fill(3.15)' 'numpy.abs(a)'100000 loops, best of 3: 6.47 usec per loop
(PS:
'[abs(x) for x in a]'在python 2.7中比慢于慢
map(abs,a),后者快约30%,但仍然比NumPy慢得多。)
因此,
numpy.abs()对于1000个元素而言,花费的时间不会比1个单个float花费更多的时间!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)