numpy 快速

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.]])
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章