我的一个项目迫切地需要一个 Python 语言的数据处理和分析框架。虽然我们已经有 Sqlite3、Pandas 等框架,但还没有一款框架能做到:
( 1 )轻松地进行 ORM 操作和数据分析
( 2 )友好的多表、跨表操作
( 3 )便于维护的链式接口设计
( 4 )对于许多数据处理功能的高层封装
( 5 )简单易用的 API
因此,为该项目开发了一款全新的框架DaPy,并在我之后的许多科研工作和工程代码开发中不断完善了该框架。几个月前,我的搭档在进行 peer code review 的时候,发现 DaPy 框架实现的代码非常的漂亮,易于理解和维护。于是他建议我将此项目在网络上推广出来,以便让更多的人有机会使用这个框架。目前,认识的许多同事已经在他们的科研项目中使用 DaPy。 这篇文章有对 DaPy 特性更为具体的介绍。
1
XIVN1987 2019-09-25 12:25:55 +08:00
一个类似 Pandas 的库?
能不能详细地、用示例说明下它解决了 Pandas 的哪些问题和不足?? 上面说的优点太笼统,没有直观感受,说服力不足啊 |
3
JacksonWoo OP 谢谢你的建议,@XIVN1987 可以参考一下这篇博客: https://juejin.im/post/5d60d051e51d4561d106cc02
|
4
JacksonWoo OP @dezhou Pandas 确实不错,但对于很多在高校的统计研究人员来说,他们相比较于 R 或者 Matlab 来说,易用性确实差一些。Pandas 是适合程序员使用数据分析框架。
|
5
renmu123 2019-09-25 16:21:40 +08:00
现在有完整的文档吗?想用来试试看
|
6
CallMeReznov 2019-09-25 17:25:01 +08:00
看不懂,也不敢说话,先点个赞.
|
7
TimePPT 2019-09-25 18:04:02 +08:00
看着是好东西,虽然仍然会用 Pandas,但还是要支持下!
|
8
JacksonWoo OP @renmu123 目前没有完整的文档,但是可以通过 help 来查看非常丰富的帮助信息。我的微信号是这个:Wxsjswxs,有任何使用中的疑惑或者建议欢迎骚扰!
|
9
lxy42 2019-09-25 22:08:04 +08:00 via Android
简单看了一下代码,似乎完全是纯 Python 实现的,几乎不依赖第三方库。
为什么不基于 pandas 或者 numpy 封装出简单易用的 API 呢?而且矩阵计算的性能也要更好。 |
11
JacksonWoo OP @lxy42 在 DaPy 数据处理的结构中,最重要的是 SeriesSet 数据结构(类似于 DataFrame )。它的实现是由一系列的一维数据结构 Series 存在字典中实现的,而 Series 则是 Python 内置结构 list 的派生类。
我没有选择基于 numpy.array 做封装的原因是:1. numpy.array 往往对数据格式有很强的要求,在处理文本数据的时候会比较低; 2. Numpy.array 在初始化新对象的时候的速度不一定比 list 快。Numpy.array 只在一种情况下是高效的,那就是矩阵运算。 因此,DaPy 在类似于 DataFrame 的通用数据框架中是使用 list 进行了封装;而在机器学习模块中为所有模型设置“engine”参数,可以选择 Numpy 矩阵作为运算引擎,以加速在模型训练时的速度。 |
12
JacksonWoo OP @dezhou 在矩阵运算的性能上,Numpy 无疑是最快的,毕竟她底层调用的是 C 的科学运算库,DaPy 自然比不过的。但是,在数据预处理、特征工程等阶段的操作,并不能一直使用矩阵运算的。DaPy 的设计初衷,是让你轻松地通过调用简单的 API 完成一系列的数据预处理和特征工程操作。DaPy 不想推翻 Numpy 创造一个新的计算引擎,而是想减轻数据科学工作者的工作负担。
|
13
sadscv 2019-09-27 00:26:06 +08:00 via iPhone
请问数据源支持 sql server 吗?在 readme 中提到支持 mysql server 是否为笔误?
|
14
JacksonWoo OP @sadscv 目前支持的是 MySQL 数据库,因为我没有 sql server 的服务器没法做调试,所以暂时还没有支持 sql server
|