第5次作业
1.
from datetime import datetime,timedelta; print(datetime.now())
dtp = datetime.strptime('2017年9月30日12时3分4秒','%Y年%m月%d日12时3分4秒') print(dtp)#字符串转时间 end = datetime.strptime('2018-10-25 22:00',"%Y-%m-%d %H:%M")#时间转字符串 print(end-dtp)
二、问题
- 数列:
- a = a1,a2,a3,·····,an
- b = b1,b2,b3,·····,bn
- 求:
- c = a12+b13,a22+b23,a32+b33,·····+an2+bn3
1.用列表+循环实现,并包装成函数
2.用numpy实现,并包装成函数
3.对比两种方法实现的效率,给定一个较大的参数n,用运行函数前后的timedelta表示。
# 用列表+循环实现,并包装成函数 def lsSum(x): a = list(range(0,100000)) b = list(range(0,100000)) c = [] for i in range(len(a)): c.append(a[i] ** 2 + b[i] ** 3) return c # 用numpy实现,并包装成函数 def npSum(y): import numpy as np; a = np.arange(y) b = np.arange(0, 2 * y, 2) c = a ** 2 + b ** 3 # 对比两种方法实现的效率,给定一个较大的参数n,用运行函数前后的timedelta表示。 dt = datetime.now() lsSum(10000000) print(datetime.now() - dt) dt1 = datetime.now() npSum(10000000) print(datetime.now() - dt1)
三、尝试把a,b定义为三层嵌套列表和三维数组,求相对应元素的ai2+bi3
对比两种数据类型处理方法及效率的不同。