最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python polars數(shù)據(jù)科學(xué)庫(kù)對(duì)比Pandas優(yōu)勢(shì)分析

 更新時(shí)間:2024年01月30日 09:25:02   作者:程序員小寒  
這篇文章主要為大家介紹了python polars數(shù)據(jù)科學(xué)庫(kù)對(duì)比Pandas優(yōu)勢(shì)分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

python polars數(shù)據(jù)科學(xué)庫(kù)

今天給大家分享一個(gè)神奇的 python 庫(kù),polars。

https://github.com/pola-rs/polars 

大家都知道,Pandas 是數(shù)據(jù)科學(xué)中重要的 Python 庫(kù)。但它最大的缺點(diǎn)是對(duì)大型數(shù)據(jù)集的操作可能很慢。

Polars 是一個(gè)開(kāi)源且相對(duì)較新的數(shù)據(jù)分析和處理庫(kù),為廣泛流行的 Pandas 庫(kù)提供了替代方案

為什么它比 Pandas 快

根據(jù) Polars 用戶(hù)指南,其目標(biāo)是 “利用機(jī)器上的所有可用內(nèi)核,以提供一個(gè)閃電般快速的 DataFrame 庫(kù)。”

與 Polars 相比,Pandas 本身并不跨計(jì)算機(jī)核心并行處理。而 Polars 是為并行化而設(shè)計(jì)的。

Polars 有兩種不同的 API:急切 API 和惰性 API

急切執(zhí)行類(lèi)似于 Pandas。這意味著直接運(yùn)行代碼,并立即返回結(jié)果。

延遲執(zhí)行是在你需要結(jié)果之前不會(huì)運(yùn)行。因此它避免了運(yùn)行不必要的代碼,所以延遲執(zhí)行比急切執(zhí)行更有效。

對(duì)于延遲執(zhí)行,你必須使用 .lazy() 方法開(kāi)始操作。然后你就可以為你想做的任何事情編寫(xiě)代碼。

最后,你需要運(yùn)行 .collect() 方法來(lái)顯示結(jié)果。

如下所示

df.lazy() 
  .with_columns([(pl.col("col") * 10).alias("new_col")]) 
  #... 
  .collect()

如果不運(yùn)行 .collect() 方法,該操作不會(huì)立即執(zhí)行。

安裝庫(kù)

可以直接使用 pip 進(jìn)行安裝。

pip install polars

之后,你可以像導(dǎo)入 Pandas 一樣導(dǎo)入 Polars 。

import polars as pl
import pandas as pd

Pandas and Polars 比較

乍一看,Pandas 和 Polars(急切 API)在語(yǔ)法上很相似,因?yàn)樗鼈児蚕碇饕獦?gòu)建塊:Series 和 DataFrame。

此外,Polars 中的許多表達(dá)式與 Pandas 表達(dá)式類(lèi)似。

# Example expressions that work both with Pandas and Polars
df.head() # Get the first n rows
df.tail() # Get the last n rows
df.unique() # Get unique values of this expression.

下面,我們來(lái)一起探討一下 Polars 與 Pandas 在語(yǔ)法和執(zhí)行時(shí)間方面的主要區(qū)別。主要從以下幾個(gè)操作來(lái)進(jìn)行比較。

  • 讀取數(shù)據(jù)

  • 選擇和過(guò)濾數(shù)據(jù)

  • 創(chuàng)建新列

  • 分組和聚合

讀取數(shù)據(jù)

在 Polars 中讀取 CSV 文件會(huì)感覺(jué)很熟悉,因?yàn)槟憧梢韵裨?Pandas 中一樣使用 .read_csv() 方法:

# Pandas
df_pd=pd.read_csv('example.csv')

# Polars
df_pl.read_csv('example.csv')

分別使用 Pandas 和 Polars 讀取示例數(shù)據(jù)集的執(zhí)行時(shí)間如下所示:

對(duì)于我們的示例數(shù)據(jù)集,使用 Pandas 讀取數(shù)據(jù)所需的時(shí)間大約是使用 Polars 的八倍。

選擇和過(guò)濾數(shù)據(jù)

Pandas 和 Polars 之間的第一個(gè)主要區(qū)別是 Polars 不使用索引。

盡管相同的 Pandas 代碼可以在 Polars 上運(yùn)行,但這不是最佳實(shí)踐。

在 Polars 中,你應(yīng)該使用 .select() 方法來(lái)選擇數(shù)據(jù)。

# Pandas
df_pd[['col1', 'col2']] 

# The above code will run with Polars as well, 
# but the correct way in Polars is:
df_pl.select(['col01', 'col02'])

在 Pandas 和 Polars 中選擇數(shù)據(jù)的執(zhí)行時(shí)間如下所示:

對(duì)于我們的示例數(shù)據(jù)集,使用 Pandas 選擇數(shù)據(jù)所需的時(shí)間大約是使用 Polars 的 15 倍。

雖然你可以在 Pandas 中使用 .query() 方法來(lái)過(guò)濾數(shù)據(jù),但你需要在 Polars 中使用 .filter() 方法。

# Pandas
df_pd.query('col01 > 5')

# Polars
df_pl.filter(pl.col('col01') > 5)

在 Pandas 和 Polars 中過(guò)濾數(shù)據(jù)的執(zhí)行時(shí)間如下所示:

對(duì)于我們的示例數(shù)據(jù)集,在 Pandas 和 Polars 中過(guò)濾數(shù)據(jù)所需的時(shí)間相似。

與 Pandas 相比,Polars 可以并行運(yùn)行 .select() 和 .filter() 中的操作。

創(chuàng)建新列

在 Polars 中創(chuàng)建新列的方法也與你在 Pandas 中的習(xí)慣不同。

在 Polars 中,你需要使用 .with_column() 或 .with_columns() 方法,具體取決于你要?jiǎng)?chuàng)建的列數(shù)。

# Pandas
df_pd["new_col"] = df_pd["col01"] * 10

# Polars
df_pl.with_column((pl.col("col01") * 10).alias("new_col"))

# Polars for multiple columns
# df_pl.with_columns([(pl.col("col01") * 10).alias("new_col"), ...])

在 Pandas 和 Polars 中創(chuàng)建新列的執(zhí)行時(shí)間如下所示:

對(duì)于我們的示例數(shù)據(jù)集,使用 Polars 創(chuàng)建新列所需的時(shí)間大約是使用 Pandas 的兩倍。

分組和聚合

Pandas 和 Polars 的分組和聚合在語(yǔ)法方面略有不同,但都使用 .groupby() 和 .agg() 方法。

# Pandas
df_pd.groupby('col01').col02.agg('mean')

# Polars
df_pl.groupby('col01').agg([pl.mean('col02')])

在 Pandas 和 Polars 中對(duì)數(shù)據(jù)進(jìn)行分組和聚合的最終執(zhí)行時(shí)間如下所示。

對(duì)于我們的示例數(shù)據(jù)集,使用 Pandas 聚合數(shù)據(jù)所需的時(shí)間大約是使用 Polars 的兩倍。

詳細(xì)源碼可以查看 https://www.kaggle.com/code/iamleonie/pandas-vs-polars 

Polars 相對(duì)于 Pandas 的主要優(yōu)勢(shì)是速度。

如果你需要對(duì)大型數(shù)據(jù)集進(jìn)行大量數(shù)據(jù)處理,那么你絕對(duì)應(yīng)該嘗試 Polars。

此外,你可能還發(fā)現(xiàn),對(duì)于相同的操作,Polars 代碼通常比 Pandas 代碼長(zhǎng)一些。

以上就是python polars數(shù)據(jù)科學(xué)庫(kù)對(duì)比Pandas優(yōu)勢(shì)分析的詳細(xì)內(nèi)容,更多關(guān)于python polars數(shù)據(jù)科學(xué)庫(kù)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • python SOCKET編程基礎(chǔ)入門(mén)

    python SOCKET編程基礎(chǔ)入門(mén)

    這篇文章主要介紹了python SOCKET編程基礎(chǔ)入門(mén)的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下
    2021-02-02
  • 在Python中使用Neo4j數(shù)據(jù)庫(kù)的教程

    在Python中使用Neo4j數(shù)據(jù)庫(kù)的教程

    這篇文章主要介紹了在Python中使用Neo4j數(shù)據(jù)庫(kù)的教程,Neo4j是一個(gè)具有一定人氣的非關(guān)系型的數(shù)據(jù)庫(kù),需要的朋友可以參考下
    2015-04-04
  • Tensorflow之構(gòu)建自己的圖片數(shù)據(jù)集TFrecords的方法

    Tensorflow之構(gòu)建自己的圖片數(shù)據(jù)集TFrecords的方法

    本篇文章主要介紹了Tensorflow之構(gòu)建自己的圖片數(shù)據(jù)集TFrecords的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-02-02
  • Python利用zhdate模塊實(shí)現(xiàn)農(nóng)歷日期處理

    Python利用zhdate模塊實(shí)現(xiàn)農(nóng)歷日期處理

    zhdate模塊統(tǒng)計(jì)從1900年到2100年的農(nóng)歷月份數(shù)據(jù)代碼,支持農(nóng)歷和公歷之間的轉(zhuǎn)化,并且支持日期差額運(yùn)算。本文將利用這一模塊實(shí)現(xiàn)農(nóng)歷日期的處理,需要的可以參考一下
    2022-03-03
  • python使用Pillow創(chuàng)建可自定義的圖標(biāo)生成器

    python使用Pillow創(chuàng)建可自定義的圖標(biāo)生成器

    在本篇博客中,我們將探討如何使用?wxPython?和?Pillow?庫(kù)創(chuàng)建一個(gè)簡(jiǎn)單的圖標(biāo)生成器,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-11-11
  • Python實(shí)現(xiàn)環(huán)境隔離和幾種常見(jiàn)方法

    Python實(shí)現(xiàn)環(huán)境隔離和幾種常見(jiàn)方法

    在 Python 開(kāi)發(fā)中,環(huán)境隔離是一個(gè)非常重要的實(shí)踐,它可以避免不同項(xiàng)目之間的依賴(lài)沖突,確保每個(gè)項(xiàng)目都能在獨(dú)立的環(huán)境中運(yùn)行,以下是幾種常見(jiàn)的 Python 環(huán)境隔離方法,需要的朋友可以參考下
    2025-09-09
  • python os.path.isfile 的使用誤區(qū)詳解

    python os.path.isfile 的使用誤區(qū)詳解

    今天小編就為大家分享一篇python os.path.isfile 的使用誤區(qū)詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-11-11
  • python計(jì)算機(jī)視覺(jué)實(shí)現(xiàn)全景圖像拼接示例

    python計(jì)算機(jī)視覺(jué)實(shí)現(xiàn)全景圖像拼接示例

    這篇文章主要為大家介紹了python計(jì)算機(jī)視覺(jué)實(shí)現(xiàn)全景圖像拼接示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-05-05
  • python 實(shí)現(xiàn)的截屏工具

    python 實(shí)現(xiàn)的截屏工具

    這篇文章主要介紹了python 如何實(shí)現(xiàn)一個(gè)截屏工具,幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下
    2021-05-05
  • Python中with的作用和使用解讀

    Python中with的作用和使用解讀

    Python的with語(yǔ)句通過(guò)上下文管理器協(xié)議(__enter__和__exit__方法),簡(jiǎn)化資源管理,確保文件、數(shù)據(jù)庫(kù)等資源在使用后自動(dòng)釋放,避免泄露,支持自定義實(shí)現(xiàn),提升代碼簡(jiǎn)潔性與可讀性
    2025-07-07

最新評(píng)論

阿合奇县| 井陉县| 庆元县| 大姚县| 兴文县| 凭祥市| 温宿县| 武乡县| 玉屏| 罗田县| 宜丰县| 屏东市| 墨江| 镇康县| 礼泉县| 怀化市| 城步| 桦甸市| 凭祥市| 宜阳县| 西华县| 贵德县| 宁安市| 阜平县| 卢龙县| 微博| 信宜市| 南城县| 马关县| 滨海县| 南溪县| 宜州市| 万全县| 龙陵县| 都昌县| 崇州市| 达日县| 若尔盖县| 阜康市| 南投市| 久治县|