Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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: 3 months ago
JSON representation
just like pandas in python, I want to give a quick impl in go lang for my backtest strategy system
- Host: GitHub
- URL: https://github.com/qingtiandalaoye/GoDataframe
- Owner: qingtiandalaoye
- Created: 2016-11-16T11:47:41.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2016-11-20T04:08:51.000Z (almost 8 years ago)
- Last Synced: 2024-05-22T14:33:46.822Z (6 months ago)
- Language: Go
- Size: 122 KB
- Stars: 29
- Watchers: 6
- Forks: 9
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- awesome-go-quant - GoDataframe - just like pandas in python, I want to give a quick impl in go lang for my backtest strategy system (Golang / Numerical Libraries & Data Structures)
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日今晚上传代码,写完描述,不写代码了, 早点休息。