python筆記(優化相關)
阿新 • • 發佈:2018-08-24
快的 class 提升性能 time 減少 .com .cn sum ber
6. 能向量化計算的就不要叠代:
c1 = np.sum(np.array([(a[i]-u1)**2 for i in range(i)]) 列表推導,速度較慢
c1 = np.sum(np.vectorize(lambda x: (x-u1)**2)(a[0:i])) 偽向量化(vectorize並不能提升性能), 速度近似列表推導
c1 = np.sum(np.square(a[0:i] - u1)) 完全向量化, 用時減少一個數量級
1. 列表推導: https://www.cnblogs.com/liu-shuai/p/6098227.html
列表推導的速度比普通循環快一倍左右
2. 盡可能多地使用內置方法: https://blog.csdn.net/pipisorry/article/details/39235753
3. 時間計量:
tib=time.clock() ... tie=time.clock() print("time = " + str(1000*(tie-tib)) + "ms") 4. 避免對長列表使用append, 改用np.empty然後逐個賦值 5. 使用numpy內部函數處理np數組是速度最快的方式: https://blog.csdn.net/Yeuing/article/details/38018183c1 = np.sum(np.square(a[0:i] - u1)) 完全向量化, 用時減少一個數量級
python筆記(優化相關)