发现一个用 Rust 重写的 Pandas 的替代品,支持 Python

2023-02-17 21:37:19 +08:00
 Baboonowen

我看 V2 好像没有人讨论,就是这个 Polars,库的设计方式就是对标 Pandas 的,API 设计基本相同,稍微改改就能迁移。

我电脑上同样的任务只需要 20% 的 Pandas 完成时间,有图有真相:

你们可以自己在自己机器上也跑跑看,这是我的测试代码: https://github.com/reycn/polars-pandas-bench

5993 次点击
所在节点    Python
28 条回复
cocomiko
2023-02-17 21:54:22 +08:00
看起来不错
ila
2023-02-17 21:56:13 +08:00
一直希望出个纯 go 或 rust 的人脸识别库
psyer
2023-02-17 22:35:10 +08:00
R 语言做这个是专业的
Baboonowen
2023-02-17 22:38:17 +08:00
@psyer R 我也会,也在磕盐用过,但是好多年没有用过了。
Baboonowen
2023-02-17 22:38:34 +08:00
@ila 听起来就不错
jenlors
2023-02-17 22:55:49 +08:00
好东西
lambdaq
2023-02-17 23:26:20 +08:00
Rust 有这功夫去把 R 重写了吧。。233
rocmax
2023-02-17 23:48:47 +08:00
@ila 我的理解模型使用的时候并不太吃资源吧,跟训练相比。所以应该是用 rust 重写 tensorflow 或者 pytorch ?
liuxu
2023-02-18 00:46:17 +08:00
正确的 rust 姿势
qiuyue0
2023-02-18 02:13:23 +08:00
明天试试
dw2693734d
2023-02-18 08:35:17 +08:00
Rust 语法劝退了,还是 go 香
tanjoe
2023-02-18 08:45:16 +08:00
@rocmax tensorflow 和 pytorch 的底层是 C++实现的,python 只是作为 binding ,改成 rust 对性能估计没啥提升
nizoukai
2023-02-18 09:45:13 +08:00
这种东西,更需要的是准确性吧,速度无所谓的,没有社区深度验证过的不敢用
shinession
2023-02-18 10:03:50 +08:00
感谢 OP 分享,第一次听说 Polars, pandas 天天用, 回头测试一下看如何
yuhangch
2023-02-18 10:17:43 +08:00
可以再来个,实现相关功能所需的时间🐶
mepwang
2023-02-18 11:44:42 +08:00
polar 使用了 apache arrow 格式进行内存数据组织,凡是使用这个思路的软件都快
这里
https://h2oai.github.io/db-benchmark/
有个十多个类似 pandas 软件的详细 benchmark ,可以看看哪几个速度快
mepwang
2023-02-18 11:55:25 +08:00
类似 pandas 的软件,表格数据在内存中都是按照行来保存,
但很多数据的存取是按列进行的,
apache arrow 的基本思路就是按列来组织数据,同一列的数据在内存中相邻存放,
因此在按列存取数据进行运算的时候速度会快很多
FightPig
2023-02-18 12:22:04 +08:00
晚点试下
panggmai
2023-02-18 12:32:23 +08:00
很早就发现这个库了,当初尝试过,具体问题是在读取大数据(csv 格式约 10G),有时会出现一些错误,尤其是 某列是某些混合类型的,比如中间有 int,str,还有时间的,pandas 会直接识别成 object ,polars 会报错,指定类型时候没有找到怎么去写的
NoOneNoBody
2023-02-18 12:56:32 +08:00
@nizoukai #13
看谁用吧,速度也很重要的,开始到收市只有只有四小时,自动操盘的计算时间极短

@panggmai #19
混合类型其实不止这个库,很多并发的库也处理不好
例如 np.nan 是浮点型,但很多时候其他类型需要表示“无”也会用到,批量计算尤其涉及相互比较的移动计算 /groupby 等就很麻烦

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/917052

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX