np.concate 比較慢
pd.concat([])也比較慢
還有
慢 ref = np.array([ref_list]*20000000)
快 ref = np.zeros((20000000,10))
ref[:,:] = [1, 1, 0, 1, 1, 0, 1, 1, 0, 1]
最佳解決方案
上面對Numpy的使用觀念可能有誤。 NumPy數組存儲在連續的內存塊中,如果要將行或列添加到現有數組中,則需要將整個數組複製到一個新的內存塊,從而爲要存儲的新元素創建間隙。如果重複建立一個數組,這是非常低效的。
在添加行的情況下,最好的辦法是創建一個與您的數據集最終大小一樣的數組,然後向其中按行添加數據:
>>> import numpy
>>> a = numpy.zeros(shape=(5,2))
>>> a
array([[ 0., 0.],
[ 0., 0.],
[ 0., 0.],
[ 0., 0.],
[ 0., 0.]])
>>> a[0] = [1,2]
>>> a[1] = [2,3]
>>> a
array([[ 1., 2.],
[ 2., 3.],
[ 0., 0.],
[ 0., 0.],
[ 0., 0.]])