《Rust编程与项目实战》(朱文伟,李建英)【摘要 书评 试读】- 京东图书 (jd.com)
17.1.1 什么是Polars
Polars是一个基于 Rust 的数据分析库,它的目标是提供一个高性能的数据分析工具,同时也提供了Python和JavaScript的接口,也就是说这款工具还可以供Python使用。Polars是一个用纯Rust开发的速度极快的DataFrame库,底层使用Apache Arrow内存模型。
数据科学家和数据分析师都对Pandas非常熟悉。对于数据科学领域的从业者来说,几乎无一例外地都会花费大量时间学习用Pandas处理数据。然而Pandas被诟病最多的是其运行速度和大数据集的处理效率。幸运的是,Polars的出现弥补了Pandas的不足。
Polars最核心的概念是表达式(Expressions),也是其拥有快速性能的核心。Polars提供了一个强大的表达式API。表达式API允许你创建和组合多种操作,例如过滤、排序、聚合、窗口函数等。表达式API也可以优化查询性能和内存使用。
17.1.2 Polars和Pandas对比
Polars与Pandas在许多方面具有截然不同的设计与实现。不像Pandas中每个DataFrame都有一个索引列(Pandas的很多操作也是基于索引的,例如join两个DataFrame进行联合查询),Polars并没有索引(Index)概念。主要区别如下:
(1)Polars使用Apache Arrow作为内部数据格式,而Pandas使用NumPy数组。
(2)Polars提供比Pandas更多的并发支持。
(3)Polars支持惰性查询并提供查询优化。
(4)Polars提供了与Pandas相似的API,以便于用户更快地上手。
简单地说,Polars相当于Rust的Pandas,且性能比Pandas要好很多。总体感觉,Polars就是奔着取代Pandas而生的。
17.1.3 为什么需要Polars
跟Pandas比,Polars有如下优势:
(1)Polars取消了DataFrame中的索引。消除索引让Polars更容易操作数据(Pandas中的DataFrame的索引很鸡肋)。
(2)Polars数据底层用Apache Arrow数组表示,而Pandas数据背后用NumPy数组表示。Apache Arrow在加载速度、内存占用和计算效率上都更加高效。
(3)Polars比Pandas支持更多并行操作。因为Polars是用Rust写的,所以可以无畏并发

最低0.47元/天 解锁文章
1664

被折叠的 条评论
为什么被折叠?



