搜索
写经验 领红包
 > 社会

umpy库为什么如此高效(pytho中umpy库的作用)

导语:「5」Python Numpy库为什么需要向量操作本篇介绍Python科学库Numpy中的向量操作和Python内置的操作的性能对比。可以发现当处理大数据量时,前者性能明显优于后者。 1、Python缓慢的循环import numpy as np 自定义函数 def cpt_reciprocals(values): output = np.empty(len(values)) for i in range(len(values)): output[i] = 1.0 / values[i] return outputvalues = np.random.randint(1,10,size=5)cpt_reciprocals(values)big_array = np.random.randint(1,100,size = 1000000)%timeit cpt_reciprocals(big_array)Python内置操作-百万数据量耗时'''小结:1、单次loop耗时在秒级(约2.77s),处理百万次操并存储结果花了几秒,太慢。现今手机处理速度都在每秒10亿次浮点运算2、CPython在每次循环时必须做数据类型的检查和函数的调度每次循环时,Python首先检查对象的类型,查找适用此类型的函数。如果能在编译时进行这样的操作,那么在代码执行之前知晓类型的声明,结果的计算也会更加有效率'''2、Numpy中向量操作%timeit 1/big_arrayNumpy向量操作-百万数据量耗时'''小结1、单次loop耗时在毫秒级(约5.9ms )2、Numpy 为很多类型的操作提供了非常方便的、静态类型的、可编译程序的接口通过简单地对数组执行操作来实现,这些操作将会被用于数组中的每一个元素。这种向量方法被用于将循环推送至 Numpy之下的编译层,这样会取得 更快的执行效率'''性能总结:1、用向量的方式进行计算几乎总比用 Python 循环实现的计算更加有效,尤其是当数组很大时。2、只要看到 Python 脚本中有这样的循环,就应该考虑能否用向量方式替换 这个循环。'''

免责声明:本站部份内容由优秀作者和原创用户编辑投稿,本站仅提供存储服务,不拥有所有权,不承担法律责任。若涉嫌侵权/违法的,请反馈,一经查实立刻删除内容。本文内容由快快网络小馨创作整理编辑!