您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

NumPy的数学函数是否比Python快?

NumPy的数学函数是否比Python快?

计时结果如下:

lebigot@weinberg ~ % python -m timeit 'abs(3.15)' 
10000000 loops, best of 3: 0.146 usec per loop

lebigot@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 loop

lebigot@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花费更多的时间!

python 2022/1/1 18:30:44 有186人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶