numpy数组及处理:效率对比
一、处理日期时间
取系统时间
from datetime import datetime
datetime.now()
转换成‘2017年9月30日星期六10时28分56秒’格式字符串
print('{0:%Y}年{0:%m}月{0:%d}日星期{0:%w} {0:%H}时{0:%M}分{0:%S}秒'.format(now))
’2018-10-25 22:00‘转换成一个日期时间变量
date=datetime.now()
d="2018-10-25 22:00"
a=date.strptime(d,'%Y-%m-%d %H:%M')
print(a)
type(a)
计算两者的间隔
import datetime d1=datetime.datetime(2017,9,30) d2=datetime.datetime(2018,10,22) (d2-d1).days
二、问题:
- 数列:
- a = a1,a2,a3,·····,an
- b = b1,b2,b3,·····,bn
- 求:
- c = a12+b13,a22+b23,a32+b33,·····+an2+bn3
1.用列表+循环实现,并包装成函数
def Sum(n): a=list(range(n)) b=list(range(0,10*n,4)) c=[] for i in range(len(a)): c.append(a[i]**2+b[i]**3) return c print(Sum(5))
2.用numpy实现,并包装成函数
import numpy as np def Sum2(n): a=np.array(range(n)) b=np.array(range(0,10*n,n)) s=[] for i in range(len(b)): s.append(a[i]**2+b[i]**3) return s print(Sum2(20))
3.对比两种方法实现的效率,给定一个较大的参数n,用运行函数前后的timedelta表示。
dt=datetime.now() ListSum(5000) print(datetime.now()-dt) dt1=datetime.now() npSum(5000) print(datetime.now()-dt1)