numpy数组及处理:效率对比
Posted soooooo
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了numpy数组及处理:效率对比相关的知识,希望对你有一定的参考价值。
问题:
- 数列:
- a = a1,a2,a3,·····,an
- b = b1,b2,b3,·····,bn
- 求:
- c = a12+b13,a22+b23,a32+b33,·····+an2+bn3
1.用列表+循环实现,并包装成函数
代码:
#用列表+循环实现,并包装成函数 def pySum(s): a=list(range(s)) b=list(range(0,5*s,5)) c=[] for i in range(len(a)): c.append(a[i]**2+b[i]**3) return c print(pySum(30))
运行结果:
2.用numpy实现,并包装成函数
代码:
#用numpy实现,并包装成函数 #导入numpy import numpy a=numpy.arange(15) b=numpy.arange(0,75,5) c = a+b print(a,b,c)
运行结果:
3.对比两种方法实现的效率,给定一个较大的参数n,用运行函数前后的timedelta表示。
代码:
问题: ?数列: ?a = a1,a2,a3,·····,an ?b = b1,b2,b3,·····,bn ?求: ?c = a12+b13,a22+b23,a32+b33,·····+an2+bn3 1.用列表+循环实现,并包装成函数 代码: #用列表+循环实现,并包装成函数 def pySum(s): a=list(range(s)) b=list(range(0,5*s,5)) c=[] for i in range(len(a)): c.append(a[i]**2+b[i]**3) return c print(pySum(30)) 运行结果: 2.用numpy实现,并包装成函数 代码: #用numpy实现,并包装成函数 #导入numpy import numpy a=numpy.arange(15) b=numpy.arange(0,75,5) c = a+b print(a,b,c) 运行结果: 3.对比两种方法实现的效率,给定一个较大的参数n,用运行函数前后的timedelta表示。 代码: #用列表+循环实现,并包装成函数 def pySum(n): a = list(range(n)) b = list(range(0,5*n,5)) c = [] for i in range(len(a)): c.append(a[i] ** 2 + b[i] ** 3) return (c) print(pySum(30)) #用numpy实现,并包装成函数 import numpy def npSum(n): a = numpy.arange(10) b = numpy.arange(0,50,5) c = a+b return c print(npSum(10)) #比较两种方法的实现效率 from datetime import datetime start = datetime.now() pySum(100000) delta = datetime.now()-start print(delta) from datetime import datetime start = datetime.now() npSum(100000) delta = datetime.now()-start print(delta)
运行结果:
结论是:由上述结果显示,第二种用numpy实现比第一种用列表+循环实现的实用效率要快。
以上是关于numpy数组及处理:效率对比的主要内容,如果未能解决你的问题,请参考以下文章