Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/qingtiandalaoye/GoDataframe

just like pandas in python, I want to give a quick impl in go lang for my backtest strategy system
https://github.com/qingtiandalaoye/GoDataframe

Last synced: 27 days ago
JSON representation

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

Awesome Lists containing this project

README

        

# GoDataframe
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一个数量级,语法掌握起来也挺快。

于是舍弃了休息时间,代码连抄带改,这个一定要说, 毕竟抄了很多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日

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