數據處理性能對比(Python原生vs Pandas vs Numpy)
對于任何數據科學家來說,速度和時間都是一個關鍵因素。在商業活動中,通常不會使用僅僅有數千個樣本的玩具數據集。大部分時候你的數據集包括數百萬或數億個樣本??蛻粲唵危W絡日志,帳單活動,股票價格等 - 現在的數據集非常龐大。
我猜你不會想花幾個小時或幾天,等待你的數據處理完成。迄今為止,我所使用的***數據集包含超過3000萬條記錄。當我***次運行數據處理腳本時,預估的完成時間約為4天!我沒有非常強大的機器(Macbook Air與i5和4 GB的RAM),但我可以保證一晚上運行完腳本而不是數天。
感謝一些聰明的技巧,我能夠將這個運行時間縮短到幾個小時。這篇文章將解釋實現良好數據處理性能的***步 - 為您的數據集選擇正確的庫/框架。
下圖顯示了我的實驗結果(詳情如下),與純Python的處理速度做出對比。
如你所見,Numpy的表現比Pandas的表現要好幾倍。我個人喜歡用Pandas來簡化許多繁瑣的數據科學任務,它是我的***工具。但是如果預計的處理時間超過多個小時,那么很遺憾,我只能使用Numpy來替代Pandas。
我非常清楚實際的性能可能會有很大的不同,這取決于任務和處理類型。所以請把這些結果僅僅作為參考。沒有任何一個單獨的測試可以全面對比所有軟件工具的性能。
簡介
在下面的 Notebook 中你將會比較 Python 原生方法, Pandas 和 Numpy 處理數據的速度。
導入模塊
制作模擬隨機數據集
Python 原生方法
Pandas 方法
Numpy 方法
檢查是否所有的方法生成同樣的結果
比較運行時間
Python average time: 38.77917420864105 seconds
Pandas average time: 10.483694124221802 seconds
Numpy average time: 2.914765810966492 seconds
展示結果