真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

如何加快pandas計(jì)算速度

小編給大家分享一下如何加快pandas計(jì)算速度,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

在沅陵等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都做網(wǎng)站、成都網(wǎng)站建設(shè) 網(wǎng)站設(shè)計(jì)制作按需搭建網(wǎng)站,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),成都品牌網(wǎng)站建設(shè),成都全網(wǎng)營(yíng)銷,外貿(mào)營(yíng)銷網(wǎng)站建設(shè),沅陵網(wǎng)站建設(shè)費(fèi)用合理。

如何加快pandas計(jì)算速度

什么問題困擾我們?

使用pandas,當(dāng)您運(yùn)行以下行時(shí):

# Standard apply

df.apply(func)

得到這個(gè)CPU使用率:

如何加快pandas計(jì)算速度

標(biāo)準(zhǔn)pandas適用 - 僅使用1個(gè)CPU

即使計(jì)算機(jī)有多個(gè)CPU,也只有一個(gè)完全專用于您的計(jì)算。

而不是下邊這種CPU使用,想要一個(gè)簡(jiǎn)單的方法來得到這樣的東西:

如何加快pandas計(jì)算速度

并行Pandas適用 - 使用所有CPU

Pandaral·lel?如何幫助解決這個(gè)問題?

Pandaral·lel?的想法是將pandas計(jì)算分布在計(jì)算機(jī)上所有可用的CPU上,以顯著提高速度。

安裝:

$ pip install pandarallel [--user]

導(dǎo)入和初始化:

# Import

from pandarallel import pandarallel



# Initialization

pandarallel.initialize()

用法:

使用帶有pandas DataFrame的簡(jiǎn)單用例df和要應(yīng)用的函數(shù)func,只需替換經(jīng)典apply的parallel_apply。

# Standard pandas apply

df.apply(func)



# Parallel apply

df.parallel_apply(func)

做完了!

請(qǐng)注意如果不想并行化計(jì)算,仍然可以使用經(jīng)典apply方法。

也可以通過將顯示每個(gè)工作CPU一個(gè)進(jìn)度條progress_bar=True的initialize功能。

如何加快pandas計(jì)算速度

并行應(yīng)用進(jìn)度條

并配有更復(fù)雜的情況下使用帶有pandas DataFrame df,該數(shù)據(jù)幀的兩列column1,column2和功能應(yīng)用func:

# Standard pandas apply

df.groupby(column1).column2.rolling(4).apply(func)

# Parallel apply

df.groupby(column1).column2.rolling(4).parallel_apply(func)

基準(zhǔn)

對(duì)于此處提供的四個(gè)示例,請(qǐng)執(zhí)行以下配置:

https://github.com/nalepae/pandarallel/blob/master/docs/examples.ipynb

  • 操作系統(tǒng):Linux Ubuntu 16.04

  • 硬件:Intel Core i7 @ 3.40 GHz - 4核

如何加快pandas計(jì)算速度

4核上的標(biāo)準(zhǔn)與并行(越低越好)

除了df.groupby.col_name.rolling.apply速度僅增加x3.2因子之外,平均速度增加約x4因子,即使用過的計(jì)算機(jī)上的核心數(shù)。

它是如何在引擎蓋下工作的?

調(diào)用parallel_apply時(shí),Pandaral·lel

  • 實(shí)例化一個(gè)Pyarrow Plasma共享內(nèi)存

https://arrow.apache.org/docs/python/plasma.html

  • 為每個(gè)CPU創(chuàng)建一個(gè)子進(jìn)程,然后要求每個(gè)CPU在DataFrame的子部分上工作

  • 將所有結(jié)果合并到父進(jìn)程中

以上是“如何加快pandas計(jì)算速度”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!


網(wǎng)站名稱:如何加快pandas計(jì)算速度
網(wǎng)頁(yè)路徑:http://weahome.cn/article/jdhjso.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部