日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python最快的循环方法_【转】【Python效率】五种Pandas循环方法效率对比

發布時間:2023/12/31 python 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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循环方法效率对比的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。