在哪些方面,Numpy的速度反而比不上原始Python

 我来答
从空去听8
2017-11-04 · TA获得超过7439个赞
知道大有可为答主
回答量:6907
采纳率:93%
帮助的人:5575万
展开全部
很有意思的结果。我不清楚numpy数组在哪些场合下慢过list,不过纠正一下题主的误解。
python的list实现不是链表,而是动态数组。动态数组append/pop的均摊时间复杂度为O(1),而按下标随机访问跟一般数组无异,时间复杂度严格为O(1)。C++ STL中的vector也是动态数组。当然,从非尾部增删元素也是支持的,虽然慢就是了,应避免。
关于python各种内建类型操作的时间复杂度,可参考TimeComplexity
关于动态数组,可参考Dynamic array
另外numpy数组单个元素随机访问比list慢没啥大不了的,后者是python实现内建,前者还有ffi的开销。numpy快的地方在于可以整向量/整矩阵地做算术运算,中间省了许多开销。你写个list comprehension来用list模拟向量算术,再来跟numpy比,会有质的不同。哪怕没链MKL优化的numpy也能把list爆出翔。
深圳中宇视通科技有限公司
2018-08-03
深圳中宇视通科技有限公司
深圳中宇视通科技有限公司,专业生产液晶拼接屏,监视器,广告机,查询机,触摸一体机,微信打印广告机,户外定制广告机,定制显示端产品,欢迎来公司考察指导,期待跟您的合作!
向TA提问
展开全部
numpy的数组,共享内存都是给大量数据计算用的. 比python原来的list, dict要好用. 所以原则上, 只要做科学计算 , numpy性能都比python好. 不过如果是小量数据计算, 用numpy可能不是很方便. python里速度首先还是取决于算法. 其次是取决于, 你的包...
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式