V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
JacksonWoo
V2EX  ›  Python

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

  •  1
     
  •   JacksonWoo · 2019-09-25 11:36:48 +08:00 · 4121 次点击
    这是一个创建于 1919 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

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

    14 条回复    2019-09-27 15:29:37 +08:00
    XIVN1987
        1
    XIVN1987  
       2019-09-25 12:25:55 +08:00
    一个类似 Pandas 的库?

    能不能详细地、用示例说明下它解决了 Pandas 的哪些问题和不足??
    上面说的优点太笼统,没有直观感受,说服力不足啊
    dezhou
        2
    dezhou  
       2019-09-25 12:26:47 +08:00 via Android
    @XIVN1987 pandas 就挺好
    JacksonWoo
        3
    JacksonWoo  
    OP
       2019-09-25 12:26:59 +08:00
    谢谢你的建议,@XIVN1987 可以参考一下这篇博客: https://juejin.im/post/5d60d051e51d4561d106cc02
    JacksonWoo
        4
    JacksonWoo  
    OP
       2019-09-25 12:28:15 +08:00   ❤️ 1
    @dezhou Pandas 确实不错,但对于很多在高校的统计研究人员来说,他们相比较于 R 或者 Matlab 来说,易用性确实差一些。Pandas 是适合程序员使用数据分析框架。
    renmu123
        5
    renmu123  
       2019-09-25 16:21:40 +08:00
    现在有完整的文档吗?想用来试试看
    CallMeReznov
        6
    CallMeReznov  
       2019-09-25 17:25:01 +08:00
    看不懂,也不敢说话,先点个赞.
    TimePPT
        7
    TimePPT  
       2019-09-25 18:04:02 +08:00
    看着是好东西,虽然仍然会用 Pandas,但还是要支持下!
    JacksonWoo
        8
    JacksonWoo  
    OP
       2019-09-25 21:45:05 +08:00
    @renmu123 目前没有完整的文档,但是可以通过 help 来查看非常丰富的帮助信息。我的微信号是这个:Wxsjswxs,有任何使用中的疑惑或者建议欢迎骚扰!
    lxy42
        9
    lxy42  
       2019-09-25 22:08:04 +08:00 via Android
    简单看了一下代码,似乎完全是纯 Python 实现的,几乎不依赖第三方库。
    为什么不基于 pandas 或者 numpy 封装出简单易用的 API 呢?而且矩阵计算的性能也要更好。
    dezhou
        10
    dezhou  
       2019-09-25 22:16:44 +08:00 via Android
    @lxy42 比过 numpy 和 nd4j 吗?我觉得 java 更快
    JacksonWoo
        11
    JacksonWoo  
    OP
       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
        12
    JacksonWoo  
    OP
       2019-09-26 13:19:49 +08:00
    @dezhou 在矩阵运算的性能上,Numpy 无疑是最快的,毕竟她底层调用的是 C 的科学运算库,DaPy 自然比不过的。但是,在数据预处理、特征工程等阶段的操作,并不能一直使用矩阵运算的。DaPy 的设计初衷,是让你轻松地通过调用简单的 API 完成一系列的数据预处理和特征工程操作。DaPy 不想推翻 Numpy 创造一个新的计算引擎,而是想减轻数据科学工作者的工作负担。
    sadscv
        13
    sadscv  
       2019-09-27 00:26:06 +08:00 via iPhone
    请问数据源支持 sql server 吗?在 readme 中提到支持 mysql server 是否为笔误?
    JacksonWoo
        14
    JacksonWoo  
    OP
       2019-09-27 15:29:37 +08:00
    @sadscv 目前支持的是 MySQL 数据库,因为我没有 sql server 的服务器没法做调试,所以暂时还没有支持 sql server
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5318 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 09:14 · PVG 17:14 · LAX 01:14 · JFK 04:14
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.