python最快的循环方法_【转】【Python效率】五种Pandas循环方法效率对比
【Python效率】五種Pandas循環方法效率對比 - 文兄的文章 - 知乎 https://zhuanlan.zhihu.com/p/80880493
正文:
如果你使用過Python及Pandas,那么你很有可能已經使用了for循環去進行某些數據分析操作。不幸的是,絕大部分Python新手使用的下標循環語句實際上是非常之慢的,即便在小數據集上也會消耗大量的運行時間。本專欄之前的一些文章已經涉及了這方面的討論,在這篇文章中文兄進一步特意對五種不同的For Loop方法進行橫向對比,使大家更加明晰自己平時寫的各種For循環到底效率幾何。
注意:之后代碼里出現的df是一個只有一個column叫做test的dataframe。另外各方法下面的代碼均只是用法舉例,并不和測試速度用的代碼完全一致。測試代碼原文如下:https://towardsdatascience.com/how-to-make-your-pandas-loop-71-803-times-faster-805030df4f06?towardsdatascience.com
方法1:下標循環(速度等級: )
下標循環是通過循環一個下標數列,通過iloc去不斷get數據,這個方法是新手最常用的但也是最慢的,在測試例子中大概需要21.9s。
方法2:Iterrows循環(速度等級: )
該循環方式是通過iterrows進行循環,ind和row分別代表了每一行的index和內容。測試例子大概需要0.07s,比起下標循環速度提升了321倍。
方法3:Apply循環(速度等級: )
Apply是pandas的一個常用函數,通常的用法是內接一個lambda匿名函數,從而對dataframe的每一行都進行循環處理。在測試例子中,apply的速度為0.027s,比下標循環快了811倍。
方法4:Pandas內置向量化函數(速度等級: )
Pandas為我們提供了大量的內置向量化函數,比如sum,mean就可以快速計算某一列的求和和平均。在測試例子中速度為0.00236s,比下標循環快了9280倍。
方法5:Numpy向量化函數(速度等級: )
最后一種方法是將Pandas的數據轉化為Numpy的Array,然后使用Numpy的內置函數進行向量化操作。在測試例子中速度為0.000305s,比下標循環快了71800倍。
下面是詳細的速度對比圖,來自之前鏈接:
總結
以上是生活随笔為你收集整理的python最快的循环方法_【转】【Python效率】五种Pandas循环方法效率对比的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 怎么用云服务器
- 下一篇: 树上春树经典爱情语录 树上春树爱情名句1