執行這些行:
import numpy as np
import time
start = time.time()
t = []
for i in range(int(1e5)):
t.append(i)
t = np.array(t)
end = time.time()
print(end-start)
并與這些進行比較:
import numpy as np
import time
start = time.time()
t = np.array([])
for i in range(int(1e5)):
np.append(t,[i])
end = time.time()
print(end-start)
第一個比第二個快大約 100 倍!
是什么原因 ?
uj5u.com熱心網友回復:
Python 串列保存對物件的參考。這些參考在記憶體中是連續的,但是 python 以塊的形式分配它的參考陣列,所以只有一些附加需要一個副本。Numpy 不會預先分配額外的空間,因此每次都會進行復制。并且由于所有列都需要保持相同的長度,因此在每次追加時都會復制它們。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/368794.html
