NUMPY陣列及處理:效率對比
阿新 • • 發佈:2018-12-16
一、處理日期時間
取系統時間
轉換成‘2017年9月30日星期六10時28分56秒’格式字串
’2018-10-25 22:00‘轉換成一個日期時間變數
計算兩者的間隔
import datetime print(datetime.datetime.now()) print("--------------------------------") from datetime import datetime,timedelta now = datetime.now() print(now) print("--------------------------------") dt = datetime(2019,10,22,8,59) print(dt) print("--------------------------------") cday=datetime.strptime('2015-6-1 18:19:59','%Y-%m-%d %H:%M:%S') print(cday) print("--------------------------------") now1 =now.strftime('%a, %b %d %H:%M') print(now1) print("--------------------------------") print('今天是{0:%y}年的第{0:%j}天。'.format(now)) print("--------------------------------") print(dt-now) print("--------------------------------")
二、問題:
- 數列:
- 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表示。
import numpy as py from datetime import datetime def listSum(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 def numpySum(n): a=py.arange(n) b=py.arange(0,5*n,5) c=a**2+b**3 return c now1=datetime.now() print(listSum(1000000)) now2=datetime.now() print(now2-now1) now3=datetime.now() print(numpySum(1000000)) now4=datetime.now() print(now4-now3)