假设我要对numpy数组列表进行元素求和:tosum = [rand(100,100) for n in range(10)]

我一直在寻找最好的方法。看起来numpy.sum很糟糕:timeit.timeit('sum(array(tosum), axis=0)',

setup='from numpy import sum; from __main__ import tosum, array',

number=10000)

75.02289700508118

timeit.timeit('sum(tosum, axis=0)',

setup='from numpy import sum; from __main__ import tosum',

number=10000)

78.99106407165527

减少速度要快得多(接近两个数量级):timeit.timeit('reduce(add,tosum)',

setup='from numpy import add; from __main__ import tosum',

number=10000)

1.131795883178711

看起来reduce甚至比non-numpy sum有一个有意义的领先优势(注意,这些是针对1e6运行的,而不是针对上述时间的1e4):timeit.timeit('reduce(add,tosum)',

setup='from numpy import add; from __main__ import tosum',

number=1000000)

109.98814797401428

timeit.timeit('sum(tosum)',

setup='from __main__ import tosum',

number=1000000)

125.52461504936218

还有其他方法我应该试试吗?有人能解释一下排名吗?

编辑

如果首先将列表转换为numpy数组,numpy.sum肯定更快:tosum2 = array(tosum)

timeit.timeit('sum(tosum2, axis=0)',

setup='from numpy import sum; from __main__ import tosum2',

number=10000)

1.1545608043670654

不过,我只对一次求和感兴趣,因此将数组转换为numpy数组仍然会导致实际的性能损失。

python求和add_快速求和numpy数组元素wis相关推荐

  1. python数据分析(二)——numpy数组的计算

    系列文章: python数据分析(一)--numpy数组的创建 python数据分析(三)--numpy读取本地数据和索引 python数据分析(四)--numpy中的nan和数据的填充 python ...

  2. python numpy 数组元素周围_Python numpy数组元素属性及访问

    文章目录 数组对象建立后,我们经常需要查看对象的一些属性特征以及访问或更改元素赋值. 首先我们建立一个数组: import numpy as np data1 = np.array([[1,2,3], ...

  3. python numpy 子数组_Python快速转换numpy数组中Nan和Inf的方法实例说明

    在使用numpy数组的过程中时常会出现nan或者inf的元素,可能会造成数值计算时的一些错误.这里提供一个numpy库函数的用法,使nan和inf能够最简单地转换成相应的数值. 转载:https:// ...

  4. python array太慢_Python-Masked Numpy数组比普通numpy数组慢得多

    我有一个函数来计算numpy数组中所有行对之间的成对相关性.一切正常,但是后来我想起,我经常不得不处理丢失的数据.我使用蒙版数组尝试解决此问题,但它使计算速度大大降低.关于使用屏蔽函数的任何想法.我认 ...

  5. python 读取 Raw文件 生成 Numpy 数组

    一般情况下,有python的三方库的软件,可以读RGB二进制的Raw数据,生成Numpy数据.比如说OpenCV之类的.但是,我们也可以使用python的裸代码,得到Numpy. 知识点: numpy ...

  6. c语言指针生成numpy数组,python – 在cython中声明numpy数组和c指针

    在我的代码中,我通常使用numpy数组来连接方法和类.优化我的程序的核心部分我使用cython与那些numpy数组的c指针.不幸的是,我目前正在声明阵列的方式很长. 例如,假设我有一个方法应该返回一个 ...

  7. python增加索引_python – 为numpy数组添加索引

    我有一个numpy数组: prob_rf = [[0.4, 0.4, 0.4], [0.5, 0.5, 0.5], [0.6, 0.6, 0.6]] 我想为每个内部数组添加一个索引号: prob_rf ...

  8. 《利用Python进行数据分析》笔记--NumPy数组和矢量计算

    阅读SeanCheney博主上传的文章有感,特此写一篇笔记,如侵必删. 第四章 NumPy基础 NumPy的ndarray:一种多维数组对象 1. 创建ndarray array函数,接受序列性的对象 ...

  9. python观察日志(part25)--创建numpy数组

    学习笔记,仅供参考,有错必纠 按需更新 numpy中的数组 创建数组 # 构造正态矩阵 np.random.normal(0, 1, (4, 4)) array([[ 0.37736985, -0.2 ...

最新文章

  1. 《疯狂Java讲义》学习笔记(十)异常处理
  2. 数据结构与算法之打印两个有序链表公共部分和判断一个链表是否具有回文结构
  3. 【CodeForces - 1027C】Minimum Value Rectangle (数学,公式化简,思维,卡常卡memset)
  4. LeetCode 1760. 袋子里最少数目的球(二分查找)
  5. 英语笔记:写作:Nothing succeeds without a strong will
  6. 我对python的理解_python之我对装饰器的理解
  7. 基于Springboot+Vue+ElementUI物流配送管理系统
  8. python信噪比signaltonoise, SNR
  9. 计算机辅助设计cad实训总结,CAD上机实验报告.doc
  10. 计算机基础读书笔记5000字,大学生计算机基础读书笔记
  11. TP4101充电IC与锂电池保护二合一IC
  12. Python爬虫实战--小猪短租爬虫
  13. 科学养生:揭秘世界上最健康的作息时间表
  14. 153870-20-3,S-acetyl-PEG3-alcohol羟基可以反应进一步衍生化合物
  15. [淘宝客技术篇006]如何登录阿里妈妈-《登录淘宝网·二维码实现法》(下)
  16. 冷暖自知!4年Java小伙收获美团Offer,分享他的社招Java岗4面面经
  17. python 修饰符和装饰器_将两个python装饰器组合到on中
  18. 初探USB3.0极简方案FT601Q芯片方案
  19. 【关于如何输出字符串指针指向字符串地址】
  20. 校园宽带破解---解救断网之际(二)

热门文章

  1. 苹果手写笔有必要买原装的吗?ipad可以用的手写笔推荐
  2. 实现阅读平台源码,书籍排行榜是怎样实现的
  3. sql server 数据分析优化实战(一)——SQL语句优化
  4. go-zero框架的学习-短链服务
  5. jsr 正则验证_使用 Bean Validation 解决业务中参数校验
  6. WebDay19 MySQL存储引擎 索引 锁 集群
  7. R和Python语言之间相互调
  8. 三七互娱何琦:游戏平台上云是花钱还是省钱
  9. 2021-08-20 Azure、CLI、iLO、IRF、路由收敛、AS系统
  10. react native scrollView FlatList 多级联动