微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

modin可以用来做什么?

如何解决modin可以用来做什么?

我一直在研究并行化选项,发现了 raymodin。经过一些测试后,我对使用 modin 的好处略有迷失。两个例子:

df = pd.read_csv() 用于 180 MB 文件 pandas 5.2s 与 modin.pandas 2.7s

但是df.groupby() pandas 0.59s vs. modin.pandas 5.46s

什么样的应用程序会从使用 modin 中受益?这里有一个通用规则还是所有东西都必须单独测试?

解决方法

来自https://modin.readthedocs.io/en/latest/

Modin 使用 Ray 或 Dask 提供一种轻松的方式来加速您的 pandas 笔记本、脚本和库。不同于其他分布式 DataFrame 库,Modin 提供无缝集成和 与现有的熊猫代码兼容。即使使用 DataFrame 构造函数是相同的。

突出的两个主要特点是:

  • 使用具有相同 Pandas API 的多个 CPU 内核:

在 Pandas 中,您一次只能使用一个核心 进行任何类型的计算。使用 Modin,您可以使用所有 您机器上的 CPU 内核。

  • 支持非常大的数据集

使用 Modin,由于其轻量级、健壮性和可扩展性, 您将获得 1MB 和 1TB+ 的快速 DataFrame

特别是对于问题的慢 group_by 部分,有一个 github 讨论指出常规的旧熊猫比 modin.pandas 效果更好: https://github.com/modin-project/modin/issues/895

Modin 仍在积极开发中,来自他们的 github repo(https://github.com/modin-project/modin) 的 README.md 列出了提到这些功能的熊猫 API 覆盖范围: enter image description here

,

根据经验,您对列进行的任何转换(如聚合函数(groupby()、sum()、count())在 modin 中总是更快。

非常简单的原因是 Modin 将使用您机器的多个内核,因此所有这些都将比 Pandas 更快。

通常,如果您在任何列上使用 .transform() or .apply(),Modin 将能够更快地完成。

但是,在少数情况下,modin 会比 PANDAS 慢。示例:

.append()

谢谢!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。