为什么.sum()比.any()或.max()更快?

 晨曦微露jie 发布于 2023-01-18 11:01

在优化代码的慢速部分时,我惊讶于A.sum()几乎是以下两倍的事实A.max():

In [1]: A = arange(10*20*30*40).reshape(10, 20, 30, 40)

In [2]: %timeit A.max()
1000 loops, best of 3: 216 us per loop

In [3]: %timeit A.sum()
10000 loops, best of 3: 119 us per loop

In [4]: %timeit A.any()
1000 loops, best of 3: 217 us per loop

我原本预计A.any()会更快(它应该只检查一个元素!),然后A.max(),这A.sum()将是最慢的(sum()需要添加数字并每次更新一个值,max需要每次比较数字并有时更新,我认为添加应该比比较慢.事实上,情况正好相反.为什么?

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有