热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

numpy的快体现在哪儿

1、本文主要对传统for循环,sum函数,以及numpy包中的sum函数的执行快慢进行比较for循环:sum_by_for="""for d in d

1、本文主要对传统for循环,sum函数,以及numpy包中的sum函数的执行快慢进行比较

for循环:

sum_by_for="""
for d in data:s+=d
"""

sum函数:

sum_by_sum="""
sum(data)
"""

numpy中的sum函数:

sum_by_numpy="""
import numpy
numpy.sum(data)
"""

2、本文针对上述三种方法,分别对list,array和numpy数据形式用上述三种方法进行比较:

list:

def timeit_using_list(n,loops):list_setup="""
data=[1]*{}
s=0
""".format(n)print('list result:')print(timeit.timeit(sum_by_for,list_setup,number=loops))print(timeit.timeit(sum_by_sum,list_setup,number=loops))print(timeit.timeit(sum_by_numpy,list_setup,number=loops))

array:

def timeit_using_array(n,loops):array_setup="""
import array
data=array.array('L',[1]*{})
s=0
""".format(n)print('array result:')print(timeit.timeit(sum_by_for,array_setup,number=loops))print(timeit.timeit(sum_by_sum,array_setup,number=loops))print(timeit.timeit(sum_by_numpy,array_setup,number=loops))def

numpy:

def timeit_using_numpy(n,loops):numpy_setup="""
import numpy
data=numpy.array([1]*{})
s=0
""".format(n)print('numpy result:')print(timeit.timeit(sum_by_for,numpy_setup,number=loops))print(timeit.timeit(sum_by_sum,numpy_setup,number=loops))print(timeit.timeit(sum_by_numpy,numpy_setup,number=loops))

3、实验结果对比

 

全部代码:

import timeitsum_by_for="""
for d in data:s+=d
"""sum_by_sum="""
sum(data)
"""sum_by_numpy="""
import numpy
numpy.sum(data)
"""def timeit_using_list(n,loops):list_setup="""
data=[1]*{}
s=0
""".format(n)print('list result:')print(timeit.timeit(sum_by_for,list_setup,number=loops))print(timeit.timeit(sum_by_sum,list_setup,number=loops))print(timeit.timeit(sum_by_numpy,list_setup,number=loops))def timeit_using_array(n,loops):array_setup="""
import array
data=array.array('L',[1]*{})
s=0
""".format(n)print('array result:')print(timeit.timeit(sum_by_for,array_setup,number=loops))print(timeit.timeit(sum_by_sum,array_setup,number=loops))print(timeit.timeit(sum_by_numpy,array_setup,number=loops))def timeit_using_numpy(n,loops):numpy_setup="""
import numpy
data=numpy.array([1]*{})
s=0
""".format(n)print('numpy result:')print(timeit.timeit(sum_by_for,numpy_setup,number=loops))print(timeit.timeit(sum_by_sum,numpy_setup,number=loops))print(timeit.timeit(sum_by_numpy,numpy_setup,number=loops))if __name__=='__main__':timeit_using_list(30000,500)timeit_using_array(30000,500)timeit_using_numpy(30000,500)

 


推荐阅读
  • [大整数乘法] java代码实现
    本文介绍了使用java代码实现大整数乘法的过程,同时也涉及到大整数加法和大整数减法的计算方法。通过分治算法来提高计算效率,并对算法的时间复杂度进行了研究。详细代码实现请参考文章链接。 ... [详细]
  • 第四章高阶函数(参数传递、高阶函数、lambda表达式)(python进阶)的讲解和应用
    本文主要讲解了第四章高阶函数(参数传递、高阶函数、lambda表达式)的相关知识,包括函数参数传递机制和赋值机制、引用传递的概念和应用、默认参数的定义和使用等内容。同时介绍了高阶函数和lambda表达式的概念,并给出了一些实例代码进行演示。对于想要进一步提升python编程能力的读者来说,本文将是一个不错的学习资料。 ... [详细]
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
  • 本文讨论了如何优化解决hdu 1003 java题目的动态规划方法,通过分析加法规则和最大和的性质,提出了一种优化的思路。具体方法是,当从1加到n为负时,即sum(1,n)sum(n,s),可以继续加法计算。同时,还考虑了两种特殊情况:都是负数的情况和有0的情况。最后,通过使用Scanner类来获取输入数据。 ... [详细]
  • 本文介绍了C++中省略号类型和参数个数不确定函数参数的使用方法,并提供了一个范例。通过宏定义的方式,可以方便地处理不定参数的情况。文章中给出了具体的代码实现,并对代码进行了解释和说明。这对于需要处理不定参数的情况的程序员来说,是一个很有用的参考资料。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • 关键词:Golang, Cookie, 跟踪位置, net/http/cookiejar, package main, golang.org/x/net/publicsuffix, io/ioutil, log, net/http, net/http/cookiejar ... [详细]
  • 本文讨论了Kotlin中扩展函数的一些惯用用法以及其合理性。作者认为在某些情况下,定义扩展函数没有意义,但官方的编码约定支持这种方式。文章还介绍了在类之外定义扩展函数的具体用法,并讨论了避免使用扩展函数的边缘情况。作者提出了对于扩展函数的合理性的质疑,并给出了自己的反驳。最后,文章强调了在编写Kotlin代码时可以自由地使用扩展函数的重要性。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • importjava.util.ArrayList;publicclassPageIndex{privateintpageSize;每页要显示的行privateintpageNum ... [详细]
  • 展开全部下面的代码是创建一个立方体Thisexamplescreatesanddisplaysasimplebox.#Thefirstlineloadstheinit_disp ... [详细]
  • 本文介绍了机器学习手册中关于日期和时区操作的重要性以及其在实际应用中的作用。文章以一个故事为背景,描述了学童们面对老先生的教导时的反应,以及上官如在这个过程中的表现。同时,文章也提到了顾慎为对上官如的恨意以及他们之间的矛盾源于早年的结局。最后,文章强调了日期和时区操作在机器学习中的重要性,并指出了其在实际应用中的作用和意义。 ... [详细]
  • WhenIusepythontoapplythepymysqlmoduletoaddafieldtoatableinthemysqldatabase,itdo ... [详细]
  • 先看官方文档TheJavaTutorialshavebeenwrittenforJDK8.Examplesandpracticesdescribedinthispagedontta ... [详细]
  • Python爬虫中使用正则表达式的方法和注意事项
    本文介绍了在Python爬虫中使用正则表达式的方法和注意事项。首先解释了爬虫的四个主要步骤,并强调了正则表达式在数据处理中的重要性。然后详细介绍了正则表达式的概念和用法,包括检索、替换和过滤文本的功能。同时提到了re模块是Python内置的用于处理正则表达式的模块,并给出了使用正则表达式时需要注意的特殊字符转义和原始字符串的用法。通过本文的学习,读者可以掌握在Python爬虫中使用正则表达式的技巧和方法。 ... [详细]
author-avatar
男孩形式恋人
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有