我分別創造1、10、10^2、10^3、10^4...10^6個0
格式有List和Numpy Array
分別對他們執行內建的min和np.min
甚至也將型態轉換後再作比較
每一次的執行都是跑1000次
程式碼可看文末
最小和最大的比較結果差不多
這邊就只放min的圖
假如你使用List,無論長度為何,一律使用內建min
假如你使用Array,長度50以下,使用內建min;以上則用np.min
min(A, B) 會快於 min([A, B])
另外,Numpy的運算是以C為底的方式執行import time
import numpy as np
info = np.zeros([7, 6])
for idx in range(7):
test_list = [0]*10**idx
test_arr = np.asarray(test_list)
start_time = time.time()
for i in range(1000):
max(test_list)
info[idx][0] = time.time() - start_time
start_time = time.time()
for i in range(1000):
np.max(test_list)
info[idx][1] = time.time() - start_time
start_time = time.time()
for i in range(1000):
np.max(np.asarray(test_list))
info[idx][2] = time.time() - start_time
start_time = time.time()
for i in range(1000):
np.max(test_arr)
info[idx][3] = time.time() - start_time
start_time = time.time()
for i in range(1000):
max(test_arr)
info[idx][4] = time.time() - start_time
start_time = time.time()
for i in range(1000):
max(list(test_arr))
info[idx][5] = time.time() - start_time