python调用golang dataframe_个人开源第一弹:GoDataframe

博主因Python的backtest策略系统运行速度慢,尝试使用其他语言重写,考虑过C/C++, Java, Julia, Rust,最终选择了Go语言。经过努力,博主实现了Go版的dataframe——GoDataframe,它能读取CSV,打印内容,支持loc函数等基本操作。项目已开源在GitHub,欢迎参与改进。" 5794071,901606,二叉树图形演示及操作程序,"['图形', '数据结构', 'C语言', '二叉树操作', '算法']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

just like pandas in python, I want to give a quick impl in go lang for my backtest strategy system.

前因后果:

有人用过 python里面的 pandas 吗?好用不必多说。没用过的, 这篇也没什么值得看的。

我用python写的BT运行速度有点慢, 想用其他语言重写,没想到捅了马蜂窝,真是无折腾不生活。

C/C++一直没正经用过,代码看、改没问题,但是要拿起来重新写个什么,感觉掌握起来有难度,只是想想,就放弃了。

java虽是是本行,但感觉做这个太重了,有VM,运行环境要求太多。

后来看了下julia,号称 high-level, high-performance dynamic programming ,专为HPC而开发的类python语言, 简单写了个for, 发现与go,c相比还是有些慢, 而且版本还没1.0, 遂从入门到放弃,哎,等到长发及腰再说吧。

而后又看 rust,号称代替C++的,网上评价性能很好,不过我看到里面C++类似的语法, :: 还有 extern, 感觉迎面突然遇到了c++,不会很短时间就能搞的定(竟然发现let,感觉很惊喜),版本1.1也才刚刚开始,还是绕路吧。

选go来自一个量友的推荐, 一开始对带vm的有点担心的,毕竟stw太亮了,可是本着 “实测优先”的专业人士的思维方式,小试了一下for, 发觉性能还可以,和c一个数量级,语法掌握起来也挺快。

于是舍弃了休息时间,代码连抄带改,这个一定要说, 毕竟抄了很多http://github.com\kniren\gota里面的代码,不过更多的是搜一些简单语法知识,比如数字转字符,字符转数字等,从2016年11月11号,人家都在抢枪抢、买买买,我却除了想写的程序,没有想买的东西。到今天16号早上出门前,终于做了一个go的 dataframe,能够读取csv文件, 打印dataframe内容,读取df里面的Series, 有 loc函数,基本算是小成了,后面怎么改,又需要“实测优先”了。

里面没什么精雕细琢,本来才学的go,一开始连语法都不会,设计更没有细想,好在test还有点,以后重构也方便。

接下来要不要改成全部传址?这样内存占用“可能”少点,用传值还是传址, 哪个性能最好,也需要实测才行。

或者设计也可以改? 总之,想要代替pandas,要做的太多了。

而且lapack、blas也都需要看一下,是不是像pandas调用numpy一样,把go里面的底层处理换了更合适呢,想想头大。

可是,我不是为了要写类库才干这个啊。 我有正事啊。

本来在 bitbucket上的私有项目, 现在放在github上开源了, 想请人参与一下,共同改进。

独乐乐不如众乐乐。

大家一起来happy吧!

开源协议不选了。代码随便使用,无需签我名字。

李炳辰 2016-11-16日

今晚上传代码,写完描述,不写代码了, 早点休息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值