自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

速度起飛!替代 pandas 的八個(gè)神庫(kù)

開(kāi)發(fā) 后端
本篇介紹 8 個(gè)可以替代pandas的庫(kù),在加速技巧之上,再次打開(kāi)速度瓶頸,大大提升數(shù)據(jù)處理的效率。

大家好,

之前介紹過(guò)不少關(guān)于pandas性能加速的技巧,但這些技巧再厲害,整體運(yùn)行速度方面也會(huì)遇到瓶頸。

本篇介紹 8 個(gè)可以替代pandas的庫(kù),在加速技巧之上,再次打開(kāi)速度瓶頸,大大提升數(shù)據(jù)處理的效率。

1. Dask

Dask在大于內(nèi)存的數(shù)據(jù)集上提供多核和分布式并行執(zhí)行。

在Dask中,一個(gè)DataFrame是一個(gè)大型且并行的DataFrame,由許多較小的 pandas DataFrames組成,沿索引拆分。

這些 pandas DataFrames 可以存在于單個(gè)機(jī)器上的磁盤中計(jì)算遠(yuǎn)超于內(nèi)存的計(jì)算,或者存在集群中的很多不同機(jī)器上完成。一個(gè) Dask DataFrame 操作會(huì)觸發(fā)所有 Pandas DataFrames 的操作。

Dask-ML支持pandas、Numpy、Sklearn、XGBoost、XArray、RAPIDS等等,對(duì)于常用的數(shù)據(jù)處理、建模分析是完全夠用的。

# 安裝dask
pip install dask
# 導(dǎo)入dask dataframe
import dask.dataframe as dd

原理、使用可參考這篇:??安利一個(gè)Python大數(shù)據(jù)分析神器Dask??!

2. Modin

Modin是一個(gè)多進(jìn)程的Dataframe庫(kù),可以加速Pandas的工作流程。多進(jìn)程意味著,如果在多核的計(jì)算機(jī)上查詢速度就會(huì)成倍的提升。

Modin具有與pandas相同的API,使用上只需在import導(dǎo)入時(shí)修改一下,其余操作一模一樣。

# 導(dǎo)入 modin pandas
import modin.pandas as pd

原理、安裝、使用可參考這篇:??pandas慢怎么辦?來(lái)試試Modin???

3. Data Table

Datatable是一個(gè)用于處理表格數(shù)據(jù)的 Python 庫(kù)。

與pandas的使用上很類似,但更側(cè)重于速度和大數(shù)據(jù)的支持。在單節(jié)點(diǎn)的機(jī)器上,無(wú)論是讀取數(shù)據(jù),還是數(shù)據(jù)轉(zhuǎn)換等操作,速度均遠(yuǎn)勝于pandas。

如果不是分布式而是單節(jié)點(diǎn)處理數(shù)據(jù),遇到內(nèi)存不夠或者速度慢,也不妨試試這個(gè)庫(kù)。

  •  使用文檔:https://datatable.readthedocs.io/en/latest/start/quick-start.html

4. Polars

Polars是使用 Apache Arrow Columnar Format 作為內(nèi)存模型在 Rust 中實(shí)現(xiàn)的速度極快的 DataFrames 庫(kù)。

# 安裝 polars
pip install polars
# 導(dǎo)入 polars
import polars as pl
  •  使用文檔:https://pola-rs.github.io/polars-book/user-guide/index.html

5. Vaex

Vaex 也是一個(gè)開(kāi)源的 DataFrame,它采用內(nèi)存映射、高效的核外算法和延遲計(jì)算等技術(shù)。

對(duì)于大數(shù)據(jù)集而言,只要磁盤空間可以裝下數(shù)據(jù)集,使用Vaex就可以對(duì)其進(jìn)行分析,解決內(nèi)存不足的問(wèn)題。

它的各種功能函數(shù)也都封裝為類 Pandas 的 API,幾乎沒(méi)有學(xué)習(xí)成本。

可參考這篇文章:??0.052 秒打開(kāi) 100GB 數(shù)據(jù),這個(gè)Python開(kāi)源庫(kù)火爆了??!

6. Pyspark

Pyspark 是 Apache Spark 的 Python API,通過(guò)分布式計(jì)算處理大型數(shù)據(jù)集。

# 安裝
pip install pyspark
# 導(dǎo)入
from pyspark.sql import SparkSession, functions as f
spark = SparkSession.builder.appName("SimpleApp").getOrCreate()
df = spark.read.option('header', True).csv('../input/yellow-new-yo

由于spark在速度上較hadoop更有優(yōu)勢(shì),現(xiàn)在很多企業(yè)的大數(shù)據(jù)架構(gòu)都會(huì)選擇使用spark。

7. Koalas

Koalas 是在 Apache Spark 之上實(shí)現(xiàn) 的pandas DataFrame API,讓數(shù)據(jù)分析更高效。

由于 Koalas 是在 Apache Spark 之上運(yùn)行的,因此還必須安裝 Spark。

# 安裝
pip install pyspark
pip install koalas
# 導(dǎo)入
import databricks.koalas as ks
from pyspark.sql import SparkSession
  •  使用文檔:https://koalas.readthedocs.io/en/latest/index.html

8. cuDF

cuDF 是一個(gè) Python GPU DataFrame 庫(kù),基于 Apache Arrow 列式內(nèi)存格式構(gòu)建,用于數(shù)據(jù)操作。

cuDF 提供類 pandas 的 API,因此數(shù)據(jù)分析師也是無(wú)需了解 CUDA 編程細(xì)節(jié)的。

import cudf, io, requests
from io import StringIO
url = "https://github.com/plotly/datasets/raw/master/tips.csv"
content = requests.get(url).content.decode('utf-8')
tips_df = cudf.read_csv(StringIO(content))
tips_df['tip_percentage'] = tips_df['tip'] / tips_df['total_bill'] * 100
print(tips_df.groupby('size').tip_percentage.mean())
  •  使用文檔:https://github.com/rapidsai/cudf

本篇介紹的 8 個(gè)Python庫(kù)原理不同,使用環(huán)境也有差異,大家可以根據(jù)自己的需求進(jìn)行嘗試。

但這些庫(kù)基本上都提供了類pandas的API,因此在使用上沒(méi)有什么學(xué)習(xí)成本,只要配置好環(huán)境就可以上手操作了。

責(zé)任編輯:龐桂玉 來(lái)源: Python愛(ài)好者社區(qū)
相關(guān)推薦

2022-08-26 14:41:47

Python數(shù)據(jù)科學(xué)開(kāi)源

2022-06-10 08:25:19

pandasoptionPython

2013-09-05 13:49:18

WordPress速度

2023-01-27 15:38:25

ChatGPT人工智能機(jī)器人

2022-05-11 07:50:15

React UI組件庫(kù)前端

2024-12-30 07:47:15

Python科學(xué)計(jì)算庫(kù)

2022-12-01 16:53:27

NPM技巧

2017-04-20 12:51:28

2017-01-05 09:59:45

2012-10-29 11:01:17

2025-04-27 08:35:00

Python數(shù)據(jù)分析編程

2022-06-17 09:47:04

Linux命令

2025-02-26 11:05:03

2024-10-11 17:00:20

2025-02-26 00:56:24

.Net開(kāi)源項(xiàng)目

2018-01-16 00:27:59

2018-08-21 05:03:04

NV overlay網(wǎng)絡(luò)虛擬化網(wǎng)絡(luò)

2012-11-20 10:01:40

程序員

2022-12-15 16:38:17

2022-12-07 12:33:22

云計(jì)算
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)