性能远超 pandas,又一款数据处理神器

13、Dask:并行与分布式计算的强大工具 本文深入介绍了Dask作为并行与分布式计算的强大工具,涵盖其核心组件如Dask-CuDF、任务图、调度器、客户端与工作节点的工作机制。详细讲解了Dask数组、包和数据帧等数据结构的使用方法,并探讨了延迟计算与期货模型在异步执行中的应用。文章还总结了常见操作流程、性能优化策略及在大数据处理、机器学习和科学计算中的典型应用场景,帮助用户高效利用Dask提升大规模数据处理效率。 阅读详情

你好,我是坚持分享干货的 EarlGrey,翻译出版过《Python编程无师自通》、《Python并行计算手册》等技术书籍。

如果我的分享对你有帮助,请关注我,一起向上进击。

创作不易,希望大家给一点鼓励,把公众号设置为“星标”,给文章点个“赞”和“在看”,谢谢大家啦~

来源丨网络

今天分享一个数据处理神器,性能相比 pandas 可以提升数十到上百倍。它就是 cuDF (Pandas GPU 平替),可以用于加载、连接、聚合、过滤和其他数据操作。

cuDF介绍

cuDF是一个基于Apache Arrow列内存格式的Python GPU DataFrame库,用于加载、连接、聚合、过滤和其他数据操作。cuDF还提供了类似于pandas的API。

cbe99f9c904d09c7a9c0d7c4af804e88.png

相关框架介绍

cuDF: cuDF是一个Python GPU DataFrame库,它基于Apache Arrow的列式内存格式,用于加载、连接、聚合、过滤和以类似pandas的DataFrame风格API操纵表格数据。它允许数据工程师和数据科学家通过类似于pandas的API轻松加速其工作流程,而无需深入研究CUDA编程的细节。cuDF的设计旨在在GPU上处理大规模数据集,提供了对数据处理任务的高性能支持。

Dask: Dask是一个灵活的Python并行计算库,使得在工作流程中平滑而简单地实现规模化。在CPU上,Dask使用Pandas来并行执行DataFrame分区上的操作。它允许用户以更大规模处理数据,充分发挥计算资源,而无需对代码进行大规模更改。

Dask-cuDF: Dask-cuDF在需要的情况下扩展Dask,以允许其DataFrame分区使用cuDF GPU DataFrame而不是Pandas DataFrame进行处理。例如,当调用dask_cudf.read_csv(...)时,集群的GPU通过调用cudf.read_csv()来执行解析CSV文件的工作。这使得在GPU上利用cuDF的高性能数据处理能力,从而加速大规模数据处理任务。

cuDF和Pandas比较

cuDF是一个DataFrame库,它与Pandas API密切匹配,但直接使用时并不是Pandas的完全替代品。在API和行为方面,cuDF和Pandas之间存在一些差异。以下是cuDF和Pandas之间的相似之处和差异的对比:

支持的操作:

cuDF支持许多与Pandas相同的数据结构和操作,包括Series、DataFrame、Index等,以及它们的一元和二元操作、索引、过滤、连接、分组和窗口操作等。

数据类型:

cuDF支持Pandas中常用的数据类型,包括数值、日期时间、时间戳、字符串和分类数据类型。此外,cuDF还支持用于十进制、列表和“结构”值的特殊数据类型。

缺失值:

与Pandas不同,cuDF中的所有数据类型都是可为空的,意味着它们可以包含缺失值(用cudf.NA表示)。

迭代:

在cuDF中,不支持对Series、DataFrame或Index进行迭代。因为在GPU上迭代数据会导致极差的性能,GPU优化用于高度并行操作而不是顺序操作。

结果排序:

默认情况下,cuDF中的join(或merge)和groupby操作不保证输出排序。与Pandas相比,需要显式传递sort=True或在尝试匹配Pandas行为时启用mode.pandas_compatible选项。

浮点运算:

cuDF利用GPU并行执行操作,因此操作的顺序不总是确定的。这影响浮点运算的确定性,因为浮点运算是非关联的。在比较浮点结果时,建议使用cudf.testing模块提供的函数,允许您根据所需的精度比较值。

列名:

与Pandas不同,cuDF不支持重复的列名。最好使用唯一的字符串作为列名。

没有真正的“object”数据类型:

与Pandas和NumPy不同,cuDF不支持“object”数据类型,用于存储任意Python对象的集合。

.apply()函数限制:

cuDF支持.apply()函数,但它依赖于Numba对用户定义的函数(UDF)进行JIT编译并在GPU上执行。这可以非常快速,但对UDF中允许的操作施加了一些限制。

何时使用cuDF和Dask-cuDF

cuDF:
  • 当您的工作流在单个GPU上足够快,或者您的数据在单个GPU的内存中轻松容纳时,您会希望使用cuDF。

  • 当数据量不大,可以在单个GPU内存中处理时,cuDF提供了对单个GPU上高性能数据操作的支持。

Dask-cuDF:
  • 当您希望在多个GPU上分布您的工作流程时,或者您的数据量超过了单个GPU内存的容量,或者希望同时分析许多文件中分布的数据时,您会希望使用Dask-cuDF。

  • Dask-cuDF允许您在分布式GPU环境中进行高性能的数据处理,特别是当数据集太大,无法容纳在单个GPU内存中时。

cuDF代码案例

import os
import pandas as pd
import cudf

# Creating a cudf.Series
s = cudf.Series([1, 2, 3, None, 4])

# Creating a cudf.DataFrame
df = cudf.DataFrame(
    {
        "a": list(range(20)),
        "b": list(reversed(range(20))),
        "c": list(range(20)),
    }
)

# read data directly into a dask_cudf.DataFrame with read_csv
pdf = pd.DataFrame({"a": [0, 1, 2, 3], "b": [0.1, 0.2, None, 0.3]})
gdf = cudf.DataFrame.from_pandas(pdf)
gdf

# Viewing the top rows of a GPU dataframe.
ddf.head(2)

# Sorting by values.
df.sort_values(by="b")

# Selecting a single column
df["a"]

# Selecting rows from index 2 to index 5 from columns ‘a’ and ‘b’.
df.loc[2:5, ["a", "b"]]

# Selecting via integers and integer slices, like numpy/pandas.
df.iloc[0:3, 0:2]

# Selecting rows in a DataFrame or Series by direct Boolean indexing.
df[df.b > 15]

# Grouping and then applying the sum function to the grouped data.
df.groupby("agg_col1").agg({"a": "max", "b": "mean", "c": "sum"})
转自:coggle,仅用于传递和分享更多信息,并不代表本平台赞同其观点和对其真实性负责,版权归原作者所有,如有侵权请联系我们删除。
- EOF -
文章已经看到这了,别忘了在右下角点个“赞”和“在看”鼓励哦~

推荐阅读  点击标题可跳转

1、VS Code 浮动编辑器窗口,它来了!

2、自动化神器 Playwright!

3、超赞的 Python 编译器,单核提速100倍

4、高效的终极秘诀

5、Python 3.12 版本有什么变化?

👇关注我的公众号👇

告诉你更多细节干货

b8d54885a28986fa64957276603e6ec2.jpeg

欢迎围观我的朋友圈

👆每天更新所想所悟

Pandas数据处理:Python编程中的数据科学神器 Pandas库是Python中处理数据的强大工具,它提供了一套完整的数据结构和数据处理工具。其核心对象DataFrame,是一种二维标签数据结构,类似于电子表格中的单元格。DataFrame不仅支持异质数据类型,还具备操作列、行和索引的能力,非常适合进行数据挖掘和分析工作。在深入了解DataFrame之前,建议读者已熟悉Python基础语法,并了解一些数据结构的知识。 阅读详情

相关推荐

dask-quik:使用dask和dask_cudf转换数据的实用程序

快问 使用dask和dask_cudf转换数据的实用程序。 大多数对象可以带任一个对象,并且仍将进行处理。

RAPIDS cuDF与Dask集成的最佳实践指南

RAPIDS cuDF与Dask集成的最佳实践指南 【免费下载链接】cudf cuDF - GPU DataFrame Library 项目地址: https://gitcode.com/gh_mirrors/cu/cudf ...

gitblog_00653的博客 503

产品经理必看!用Cursor自动生成符合开发规范的技术文档(含UI设计规则模板)

本文详细介绍了产品经理如何利用Cursor工具自动生成符合开发规范的技术文档,并整合UI设计规则模板。通过配置标准化文档结构和设计关联规则,Cursor能有效解决术语不统一、结构混乱等问题,提升跨团队协作效率。文章包含实际案例、规则配置要点及企业级实施方案,帮助产品经理快速掌握AI辅助文档生成技巧。

emacs5lisp的博客 224

Python cudf库详解:加速大规模数据处理

cudf是基于GPU加速的DataFrame库,与传统的pandas库类似,但能够利用GPU的并行计算能力加速数据操作。通过使用cudf,用户可以在不改变代码结构的情况下,将数据处理的速度提升数十倍,特别是在涉及大规模数据时。cudf作为基于GPU加速的DataFrame库,为Python用户提供了在大规模数据处理中显著提升性能的强大工具。通过利用GPU的并行计算能力,cudf能够在数据操作上实现显著的加速,特别适用于需要高性能计算的任务,例如数据分析、聚合和清洗。在本文中,深入探讨了cudf。

涛哥聊Python 5435

COMSOL模拟CO2驱替CH4:多物理场耦合建模与工程应用详解

在非常规天然气开发与碳封存工程中,多孔介质内的渗流、吸附与岩石变形相互耦合,使得CO2驱替CH4的产能预测和CO2封存评估无法仅靠经验公式完成。以达西定律描述裂隙流动、以扩展Langmuir方程刻画竞争吸附、用应力-吸附-渗透率关系关联煤岩变形,是多物理场耦合数值模拟的核心路径。COMSOL Multiphysics凭借内置渗流、固体力学与组分传递接口,能够将这些机制整合为可参数化扫描的仿真模型,为注气压力、井距、渗透率演化等方案设计提供量化依据。围绕CO2驱替CH4模拟的建模流程、参数取法与结果判读,可形

weixin_29574585的博客 162

用Plecs搞定半桥LLC谐振变换器仿真:从开环模型搭建到闭环PI调参全流程

本文详细介绍了使用Plecs仿真工具进行半桥LLC谐振变换器从开环模型搭建到闭环PI调参的全流程操作。涵盖仿真环境准备、关键元件参数计算、波形异常排查、闭环控制实现及PI参数整定等核心内容,特别针对仿真中的收敛性问题提供实用解决方案,助力电力电子设计者高效完成LLC变换器仿真验证。

weixin_28455801的博客 571

再见 Pandas,又一数据处理神器

cuDF:cuDF是一个Python GPU DataFrame库,它基于Apache Arrow的列式内存格式,用于加载、连接、聚合、过滤和以类似pandas的DataFrame风格API操纵表格数据。它允许数据工程师和数据科学家通过类似于pandas的API轻松加速其工作流程,而无需深入研究CUDA编程的细节。cuDF的设计旨在在GPU上处理大规模数据集,提供了对数据处理任务的高性能支持。Dask:Dask是一个灵活的Python并行计算库,使得在工作流程中平滑而简单地实现规模化。

Happy Simon 915

《QT+PCL》点云配准进阶——GROR配准

GROR点云配准

阁楼 1318

Pandas - Python爬虫数据处理分析神器

Pandas是Python数据分析的核心库,本文由唐叔带你全面了解这个数据处理神器。文章从Pandas基础数据结构DataFrame和Series讲起,逐步深入到数据清洗、统计分析、可视化等实战技巧,最后通过电商销售数据分析案例展示Pandas的强大功能。无论你是数据分析新手还是希望提升技能的开发者,这篇文章都将成为你Pandas学习路上的得力助手。

唐叔学习中... 2329

NeRF-Pytorch(训练自己的数据集过程全记录+环境配置+COLMAP+问题解决)

写于2025/1/26,在用NeRF训练自己的数据集过程中该踩的坑都踩过了,发现网上并没有详细完整写这些问题解决过程的帖子,遂自己进行一个全记录和复盘。 整篇文章包括:NeRF训练环境配置;COLMAP三维重建过程(直接给出代码,规避一些bug);在训练时候出现的问题。 本篇文章仅针对llff格式数据集。

m0_62577716的博客 1774

AgentScope 实战训练营-构建元规划智能体(Meta Planner Agent)—— 从 0 到 1 完整实现

本文介绍了基于AgentScope框架开发的元规划智能体(Meta Planner Agent)系统。该系统通过任务拆解和子代理编排机制,实现复杂任务的自动化处理。核心架构分为用户层、规划器层和子代理层,其中规划器作为"项目经理"负责任务分解、创建子代理并协调执行流程。关键技术包括AgentScope多智能体框架、DashScope大语言模型、PlanNotebook计划管理工具等。

program哲学 359

再见Pandas,又一Python数据处理神器

cuDF是一个基于Apache Arrow列内存格式的Python GPU DataFrame库,用于加载、连接、聚合、过滤和其他数据操作。cuDF还提供了类似于pandas的API。cuDF是一个Python GPU DataFrame库,它基于Apache Arrow的列式内存格式,用于加载、连接、聚合、过滤和以类似pandas的DataFrame风格API操纵表格数据。它允许数据工程师和数据科学家通过类似于pandas的API轻松加速其工作流程,而无需深入研究CUDA编程的细节。

Python栈_基的博客 1022

立项书8分钟定生死?手把手教你用ChatGPT辅助打造高水平申报书,让评审专家一看就想打高分!

宏大叙事、空话堆砌只会让评审绕晕,不如聚焦一个具体问题,拿出清晰的研究路径、扎实的设计方案,把“我想做什么、为什么做、打算怎么做”讲明白。对评审来说,关键不在你读了多少,而在你能否看清领域的共识、争议和空白,GPT的作用就在于帮你理清研究脉络,发现问题结构,聚焦那些还没被充分讨论的变量或方法,去提升综述的深度。之前要用到ProcessOn、Draw.io等工具画流程图,现在有了ai虽然方便了,但也需要多次调教,如果嫌麻烦,七哥给大家准备了课题申报常用的流程图,技术路线图,方便大家直接拿来编辑填空使用。

智能AI让学术科研更容易 291

Python数据处理提速神器:PyArrow与Pandas性能对比实测(附代码)

本文通过实测对比PyArrow与Pandas在Python数据处理中的性能表现,展示了PyArrow在读取速度、内存占用和并行计算方面的显著优势。文章包含详细的安装指南、性能测试代码及优化建议,帮助开发者高效处理大规模数据,特别适合数据科学家和工程师参考。

egg99的博客 879

Python实现稳态传热传质的偏微分方程求解

通过这种方法,我们可以求解更复杂的传热传质问题,并对系统的温度和浓度分布进行分析和优化。稳态传热传质是一个重要的工程问题,涉及到物质在空间中的分布以及热量和质量的传递。每次迭代中,我们使用上一次迭代的温度值来计算下一次迭代的温度值。该图显示了平板内部各点的温度分布,其中中心温度为T1,边界温度为T2。接下来,我们创建一个N x N的温度矩阵,并将边界条件初始化为边界温度T2。假设我们有一个矩形平板,其中心温度为T1,四个边界温度为T2。假设平板的长度为L,宽度为W,中心温度为T1,边界温度为T2。

HackDashX的博客 308

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

pandas,一个数据处理神器!

Pandas是Python生态中最强大的数据处理库,广泛应用于金融、电商、医疗等领域。本文介绍了Pandas的安装、基本用法(数据结构创建、数据查看、选择过滤、清洗处理)和高级功能(分组聚合、数据透视、时间序列处理、数据合并)。通过电商销售分析和股票数据分析两个实际案例,展示了Pandas在真实业务场景中的应用价值。Pandas以其高效的数据处理能力和直观的API设计,成为数据分析和处理的核心工具,帮助开发者用简洁代码完成复杂任务。

2501_93359500的博客 653

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

再见 Pandas,又一数据处理神器!

cuDF:cuDF是一个Python GPU DataFrame库,它基于Apache Arrow的列式内存格式,用于加载、连接、聚合、过滤和以类似pandas的DataFrame风格API操纵表格数据。它允许数据工程师和数据科学家通过类似于pandas的API轻松加速其工作流程,而无需深入研究CUDA编程的细节。cuDF的设计旨在在GPU上处理大规模数据集,提供了对数据处理任务的高性能支持。Dask:Dask是一个灵活的Python并行计算库,使得在工作流程中平滑而简单地实现规模化。

2402_84205067的博客 731

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

再见Pandas,又一数据处理神器!

cuDF是一个基于Apache Arrow列内存格式的Python GPU DataFrame库,用于加载、连接、聚合、过滤和其他数据操作。cuDF还提供了类似于pandas的API。cuDF是一个Python GPU DataFrame库,它基于Apache Arrow的列式内存格式,用于加载、连接、聚合、过滤和以类似pandas的DataFrame风格API操纵表格数据。它允许数据工程师和数据科学家通过类似于pandas的API轻松加速其工作流程,而无需深入研究CUDA编程的细节。

Python数据挖掘 1187

cuDF,加速Pandas神器!

RAPIDS cuDF作为GPU加速的数据处理工具,让Pandas、Polars这些传统数据处理工具飞了起来,其改变了数据科学和机器学习领域的工作方式。通过利用GPU的并行计算能力,RAPIDS cuDF不仅大大提升了数据处理的速度,还简化了数据处理的复杂性。不管是传统的电商、金融、制造行业,还是新型的AI领域,对于大数据处理的需求一直很旺盛,我觉得cuDF会越来越多的被使用,GPU将成为数据科学和机器学习领域的重要支撑。。对于现在的你来说,应该尽早地去学习,RAPIDS cuDF不会让你失望。

分享Python、数据分析、人工智能前沿知识 1529

再见Pandas ,新的数据处理神器来了!

在数据量不断增长的今天,掌握一门高性能的数据处理工具,无疑会让你的工作更加高效。Polars的出现,让我们看到了Python数据处理生态的新可能。从Python安装,入门,数据分析,爬取股票基金的历史+实时数据,以及如何写一个简单量化策略,策略回测,如何看资金曲线统统都有介绍,非常超值!有兴趣的小伙伴可以试一下这个神器,尤其是做量化分析,需要回测大量历史数据的时候可以试一下,会让你的回测效率大幅度提高!:Polars采用了更聪明的内存管理策略,就像收纳专家重新整理你的衣柜,同样的东西占用更少的空间。

cainiao_python的博客 1059

AWS SDK for pandas完整教程:从零到精通的数据处理神器

🚀 **AWS SDK for pandas** 是连接 Pandas 与 AWS 服务的终极桥梁,让数据处理工作变得前所未有的简单高效!无论你是数据分析师、数据工程师还是Python开发者,这个工具都能帮你轻松处理AWS上的各种数据任务。💪 ## 什么是AWS SDK for pandas? **AWS SDK for pandas**(原名 awswrangler)是一个强大的Pyth

gitblog_00583的博客 1101

Python深度挖掘:openpyxl与pandas高效数据处理实战指南

技术选型决策树是否需要精细样式控制?├─ 是 → openpyxl└─ 否 → pandas内置IO推荐学习路径pandas官方教程Kaggle竞赛案例:Titanic数据集处理未来趋势Apache Arrow后端加速pandasopenpyxl对Excel 365新功能的支持🔥🔥🔥道阻且长,行则将至,让我们一起加油吧!

ztt123654的博客 1060

Python数据处理必备:tqdm进度条在Pandas中的5个高效用法

本文详细介绍了tqdm进度条在Pandas数据处理中的5个高效用法,包括为apply/map操作注入可视化进度、精准监控iterrows/itertuples迭代、分块处理大数据集、性能调优与避坑指南,以及定制化信息增强。通过tqdm.pandas()集成和参数调整,可显著提升大数据处理时的进度掌控与用户体验,是数据分析师和工程师的必备工具。

cc789的博客 806
上一篇: Python Web 框架最全介绍,建议收藏!
下一篇: Web 开发必备的 9 款浏览器插件
codingpy
博客等级 码龄11年 1870粉丝 104原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值