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、实验结果对比

numpy的快体现在哪儿

 

全部代码:

import timeit

sum_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)

 

相关文章:

  • 2022-01-16
  • 2021-10-13
  • 2022-12-23
  • 2021-11-19
  • 2022-12-23
  • 2022-02-24
  • 2021-12-20
  • 2021-12-19
猜你喜欢
  • 2022-12-23
  • 2021-11-06
  • 2021-04-03
  • 2021-10-18
  • 2021-09-06
  • 2022-12-23
相关资源
相似解决方案