全新 Python 数据分析框架 DaPy 带给你丝滑般的数据之旅

2019-09-25 11:36:48 +08:00
 JacksonWoo

我的一个项目迫切地需要一个 Python 语言的数据处理和分析框架。虽然我们已经有 Sqlite3、Pandas 等框架,但还没有一款框架能做到:

( 1 )轻松地进行 ORM 操作和数据分析
( 2 )友好的多表、跨表操作
( 3 )便于维护的链式接口设计
( 4 )对于许多数据处理功能的高层封装
( 5 )简单易用的 API

因此,为该项目开发了一款全新的框架DaPy,并在我之后的许多科研工作和工程代码开发中不断完善了该框架。几个月前,我的搭档在进行 peer code review 的时候,发现 DaPy 框架实现的代码非常的漂亮,易于理解和维护。于是他建议我将此项目在网络上推广出来,以便让更多的人有机会使用这个框架。目前,认识的许多同事已经在他们的科研项目中使用 DaPy。 这篇文章有对 DaPy 特性更为具体的介绍。

最后,如果你觉得 DaPy 不错的话,去 Github 点个 Star 吧!!!

也很欢迎来提 Issue 一起和我们讨论哦!!!

4120 次点击
所在节点    Python
14 条回复
XIVN1987
2019-09-25 12:25:55 +08:00
一个类似 Pandas 的库?

能不能详细地、用示例说明下它解决了 Pandas 的哪些问题和不足??
上面说的优点太笼统,没有直观感受,说服力不足啊
dezhou
2019-09-25 12:26:47 +08:00
@XIVN1987 pandas 就挺好
JacksonWoo
2019-09-25 12:26:59 +08:00
谢谢你的建议,@XIVN1987 可以参考一下这篇博客: https://juejin.im/post/5d60d051e51d4561d106cc02
JacksonWoo
2019-09-25 12:28:15 +08:00
@dezhou Pandas 确实不错,但对于很多在高校的统计研究人员来说,他们相比较于 R 或者 Matlab 来说,易用性确实差一些。Pandas 是适合程序员使用数据分析框架。
renmu123
2019-09-25 16:21:40 +08:00
现在有完整的文档吗?想用来试试看
CallMeReznov
2019-09-25 17:25:01 +08:00
看不懂,也不敢说话,先点个赞.
TimePPT
2019-09-25 18:04:02 +08:00
看着是好东西,虽然仍然会用 Pandas,但还是要支持下!
JacksonWoo
2019-09-25 21:45:05 +08:00
@renmu123 目前没有完整的文档,但是可以通过 help 来查看非常丰富的帮助信息。我的微信号是这个:Wxsjswxs,有任何使用中的疑惑或者建议欢迎骚扰!
lxy42
2019-09-25 22:08:04 +08:00
简单看了一下代码,似乎完全是纯 Python 实现的,几乎不依赖第三方库。
为什么不基于 pandas 或者 numpy 封装出简单易用的 API 呢?而且矩阵计算的性能也要更好。
dezhou
2019-09-25 22:16:44 +08:00
@lxy42 比过 numpy 和 nd4j 吗?我觉得 java 更快
JacksonWoo
2019-09-26 13:14:11 +08:00
@lxy42 在 DaPy 数据处理的结构中,最重要的是 SeriesSet 数据结构(类似于 DataFrame )。它的实现是由一系列的一维数据结构 Series 存在字典中实现的,而 Series 则是 Python 内置结构 list 的派生类。

我没有选择基于 numpy.array 做封装的原因是:1. numpy.array 往往对数据格式有很强的要求,在处理文本数据的时候会比较低; 2. Numpy.array 在初始化新对象的时候的速度不一定比 list 快。Numpy.array 只在一种情况下是高效的,那就是矩阵运算。

因此,DaPy 在类似于 DataFrame 的通用数据框架中是使用 list 进行了封装;而在机器学习模块中为所有模型设置“engine”参数,可以选择 Numpy 矩阵作为运算引擎,以加速在模型训练时的速度。
JacksonWoo
2019-09-26 13:19:49 +08:00
@dezhou 在矩阵运算的性能上,Numpy 无疑是最快的,毕竟她底层调用的是 C 的科学运算库,DaPy 自然比不过的。但是,在数据预处理、特征工程等阶段的操作,并不能一直使用矩阵运算的。DaPy 的设计初衷,是让你轻松地通过调用简单的 API 完成一系列的数据预处理和特征工程操作。DaPy 不想推翻 Numpy 创造一个新的计算引擎,而是想减轻数据科学工作者的工作负担。
sadscv
2019-09-27 00:26:06 +08:00
请问数据源支持 sql server 吗?在 readme 中提到支持 mysql server 是否为笔误?
JacksonWoo
2019-09-27 15:29:37 +08:00
@sadscv 目前支持的是 MySQL 数据库,因为我没有 sql server 的服务器没法做调试,所以暂时还没有支持 sql server

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

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

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

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

© 2021 V2EX