如果您一直关注 Python 的最新发展,您可能听说过 Polars,一个用于处理数据的新库。虽然 pandas 长期以来一直是首选库,但 Polars 正在掀起波澜,尤其是在处理大型数据集方面。那么,Polars 有什么大不了的呢?它和熊猫有什么不同?让我们来分解一下。
Polars 是一个使用 Rust(一种快速的现代编程语言)构建的免费开源库。它旨在帮助 Python 开发人员以更快、更高效的方式处理数据。将其视为 pandas 的替代方案,当您处理 pandas 可能难以处理的非常大的数据集时,它会表现出色。
Pandas 已经存在很多年了,许多人仍然喜欢使用它。但随着数据变得越来越大、越来越复杂,pandas 开始表现出一些弱点。 Polars 的创建者 Ritchie Vink 注意到了这些问题,并决定创造一些更快、更高效的东西。甚至 Wes McKinney,pandas 的创建者,也在一篇题为 “我讨厌 pandas 的 10 件事” 的博客文章中承认,pandas 可以进行一些改进,特别是对于大型数据集。
这就是 Polars 的用武之地,它的设计速度快且内存效率高,这是 pandas 在处理大数据时遇到的两个问题。
Polars 速度非常快。事实上,一些基准测试表明,在执行过滤或分组数据等常见操作时,Polars 的速度比 pandas 快 5-10 倍。当您处理大型数据集时,这种速度差异尤其明显。
Polars 在记忆方面效率更高。它使用的内存比 pandas 少 5 到 10 倍,这意味着您可以处理更大的数据集而不会遇到内存问题。
Polars 使用称为延迟执行的东西,这意味着它不会在您编写操作时立即运行每个操作。相反,它会等到您编写了一系列操作,然后立即运行它们。这有助于它优化并更快地运行。另一方面,Pandas 会立即运行每个操作,这对于大型任务来说可能会更慢。
Polars 可以同时使用多个 CPU 核心来处理数据,这使得处理大数据集的速度更快。 Pandas 大多是单线程的,这意味着它一次只能使用一个 CPU 核心,这会减慢速度,尤其是在处理大型数据集时。
Polars 速度快有几个原因:
Rust 和 Apache Arrow 的这种组合使 Polars 在速度和内存使用方面比 pandas 更具优势。
虽然 Polars 非常适合大数据,但 pandas 仍然占有一席之地。 Pandas 非常适合中小型数据集,并且已经存在很长时间了,它拥有大量的功能和庞大的社区。因此,如果您不使用庞大的数据集,pandas 可能仍然是您的最佳选择。
但是,随着数据集变大,pandas 往往会使用更多内存并且速度变慢,这使得 Polars 在这些情况下成为更好的选择。
如果出现以下情况,您应该考虑使用 Polars:
北极熊和熊猫都有各自的优点。如果您正在处理中小型数据集,pandas 仍然是一个很棒的工具。但如果您正在处理大型数据集并且需要更快、更高效的内存效率,Polars 绝对值得尝试。得益于 Rust 和 Apache Arrow,其性能得到提升,使其成为数据密集型任务的绝佳选择。
随着 Python 的不断发展,Polars 可能会成为处理大数据的新的首选工具。
编码愉快? ?
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3