欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

掌握python polars庫進(jìn)行高效高速的數(shù)據(jù)處理。

 更新時(shí)間:2024年01月07日 11:37:00   作者:小寒聊python  
這篇文章主要介紹了python polars庫進(jìn)行高效高速的數(shù)據(jù)處理技巧詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

python庫polars

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

Polars 是一個(gè)使用 Rust 編寫的高性能數(shù)據(jù)處理庫,它提供了一個(gè)類似于 pandas 的 API,但專注于高效和高速的數(shù)據(jù)處理。

Polars 的語法與 Pandas 非常相似,因此從一個(gè)庫到另一個(gè)庫的轉(zhuǎn)換非常簡單。

特點(diǎn)

  • 高性能:Polars 的底層是用 Rust 編寫的,這使得它在處理大數(shù)據(jù)集時(shí)能夠提供出色的性能。

  • 內(nèi)存效率:它使用高效的內(nèi)存管理技術(shù),減少內(nèi)存占用,特別是在處理大型數(shù)據(jù)集時(shí)。

  • 易用 API:Polars 的 API 設(shè)計(jì)類似于 pandas,這對(duì)于那些已經(jīng)熟悉 pandas 的用戶來說,學(xué)習(xí)成本較低。

  • 多線程和向量化操作:通過優(yōu)化多線程處理和向量化操作,Polars 能夠進(jìn)一步提高處理數(shù)據(jù)的速度。

  • 豐富的數(shù)據(jù)操作功能:提供了廣泛的數(shù)據(jù)操作功能,包括過濾、排序、分組、聚合等。

  • 矢量化查詢引擎:Polars 使用 Apache Arrow(一種列式數(shù)據(jù)格式)以矢量化方式處理你的查詢。

Polars 提供了兩種主要的 API

DataFrame API 和 Lazy API。這兩種 API 都支持豐富的數(shù)據(jù)操作功能,但它們?cè)谔幚頂?shù)據(jù)的方式上有所不同。

DataFrame API

  • 這是 Polars 的立即執(zhí)行 API,類似于 pandas 的使用方式。

  • 當(dāng)使用 DataFrame API 時(shí),所有的數(shù)據(jù)操作(如篩選、排序、聚合)都會(huì)立即執(zhí)行并返回結(jié)果。

  • 這種方式直觀且易于調(diào)試,因?yàn)槊總€(gè)步驟的輸出都可以立即查看。

  • 適用于數(shù)據(jù)集較小,或者需要立即反饋的場(chǎng)景。

Lazy API

  • Lazy API 基于延遲執(zhí)行的概念,這意味著數(shù)據(jù)操作不會(huì)立即執(zhí)行。

  • 在這種模式下,操作會(huì)被視為一系列的指令或計(jì)劃,在實(shí)際需要結(jié)果時(shí)才執(zhí)行。

  • 這允許 Polars 對(duì)整個(gè)操作流程進(jìn)行優(yōu)化,比如合并多個(gè)步驟、消除不必要的計(jì)算,從而提高整體效率。

  • Lazy API 特別適合處理大型數(shù)據(jù)集,因?yàn)樗梢詼p少內(nèi)存占用并提高性能

庫的安裝

我們可以直接使用 pip 來進(jìn)行庫的安裝。

pip install polars

性能對(duì)比

首先,我們創(chuàng)建一個(gè)大型的虛擬數(shù)據(jù)集,它包括 100 萬行和 51 列。

import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.randint(0, 100, size=(1000000, 50))) 
df = df.rename(columns={i:f"x_{i} " for i in range(50)}) 
df["category"] = ["A", "B", "C", "D"] * 2500000
df.to_csv('data.csv')

加載數(shù)據(jù)集

import polars as pl 
df_pl = pl.read_csv("data.csv") 
df_pd = pd.read_csv("data.csv")

過濾操作

我們將對(duì)操作進(jìn)行計(jì)時(shí),以便我們可以比較 polars 和 Pandas 的性能。

%time df_pd_d = df[df["category"]=="D"] 
%time df_pl_d = df_pl.filter(pl.col("category")=="D")

pandas 使用的時(shí)間是 231 ms,而 polars 只需要 70.6 ms

多條件過濾

%time df_pd_d=df_pd[(df_pd["category"] == "D") & (df_pd["x_1 "] > 10)]
%time df_pl_d=df_pl.filter((pl.col("category")=="D") & (pl.col("x_1 ") > 10))

以上就是掌握python polars庫進(jìn)行高效高速的數(shù)據(jù)處理。的詳細(xì)內(nèi)容,更多關(guān)于python polars庫數(shù)據(jù)處理的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • OpenCV半小時(shí)掌握基本操作之圖像基礎(chǔ)操作

    OpenCV半小時(shí)掌握基本操作之圖像基礎(chǔ)操作

    這篇文章主要介紹了OpenCV基本操作之圖像基礎(chǔ)操作,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-09-09
  • 一文實(shí)現(xiàn)刪除numpy數(shù)組中的指定索引元素

    一文實(shí)現(xiàn)刪除numpy數(shù)組中的指定索引元素

    在Python中,Numpy是一個(gè)強(qiáng)大的數(shù)學(xué)庫,用于處理大型多維數(shù)組和矩陣的數(shù)學(xué)運(yùn)算,數(shù)組是由相同類型的數(shù)據(jù)元素組成的集合,并且每個(gè)元素都可以通過索引進(jìn)行訪問,本文將給大家介紹如何刪除numpy數(shù)組中的指定索引元素,需要的朋友可以參考下
    2024-05-05
  • Python讀寫常用數(shù)據(jù)文件的示例詳解

    Python讀寫常用數(shù)據(jù)文件的示例詳解

    Python?提供了多種強(qiáng)大的工具和庫,可以輕松實(shí)現(xiàn)對(duì)各種類型文件的讀寫操作,本文為大家整理了Python讀寫常用的那些數(shù)據(jù)文件的方法,希望對(duì)大家有所幫助
    2025-01-01
  • 最新評(píng)論