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
meteor2013
V2EX  ›  Python

学 Python 遇到的问题情况,不知道怎么处理。 求解决方案。

  •  1
     
  •   meteor2013 · 2014-08-23 13:02:19 +08:00 · 3806 次点击
    这是一个创建于 3752 天前的主题,其中的信息可能已经有所发展或是发生改变。
    目前有很多数据50G以上。准备把它存到数据库中,然后进行分析,处理,最后可视化。

    50G数据 -> 存数据库 -> 处理,分析数据 -> 可视化数据

    请问用Python怎么处理好呢?

    刚看了一下iPython (http://ipython.org/),好像可以导入数据,然后可视化。但感觉不是很好

    是不是可以先把数据存入数据库(mySQL,或者Hadoop什么的),然后结合django,在Sublime里面写程序处理分析数据, 再结合d3.js库什么的可视化?

    请大家帮忙。本人新手,还不知道怎么做比较好?

    谢谢
    19 条回复    2014-09-04 11:05:15 +08:00
    14
        1
    14  
       2014-08-23 13:06:56 +08:00 via Android
    你想的差不多了,现在可以去写代码了…
    meteor2013
        2
    meteor2013  
    OP
       2014-08-23 13:14:02 +08:00
    @14 那种方案比较好呢?

    如果第一种在iPython里面的话。其实不需要写多少。
    第二种的工作量到是不小的。
    imn1
        3
    imn1  
       2014-08-23 13:15:10 +08:00
    数据存取你想得也差不多了
    但分析你需要拓展一下视野,建议看看NumPy、SciPy、matplotlib、ETS、pandas等等

    Python科学计算 http://hyry.dip.jp/tech/book/index/scipynew
    其作者也活跃于这里和豆瓣

    不要看到科学计算就以为是数学,例如我熟悉的pandas,自己也常用于文字分析
    meteor2013
        4
    meteor2013  
    OP
       2014-08-23 13:20:34 +08:00
    @imn1


    谢谢哥们。说得太了好了。
    本人新手。开始学Python,不过这段时间越学越有疑问:到底Python是干嘛的??

    科学计算,还是编程做产品??

    如果是科学计算,是不是用iPython玩玩就够了,
    如果是编程做产品,是不是就要用django之类的东西???
    MarioLuisGarcia
        5
    MarioLuisGarcia  
       2014-08-23 13:36:16 +08:00 via Android
    time to code now
    imn1
        6
    imn1  
       2014-08-23 14:07:37 +08:00
    @meteor2013 不能也不该定性python就是干什么的,虽然目前看到web、服务器和科学计算方面比较多
    目前只能说py做客户端图形界面比较麻烦

    我写py不是为了吃饭的,所以不太专,我写了很多CLI的脚本帮我处理日常用电脑使用,例如我写了个小脚本用于把分散在不同地方的文档自动归类,自己手工腾挪估计没半个月做不完,写个C什么的还编译来运行也不实际,python就恰巧,随时改改就能用了~
    ZavierXu
        7
    ZavierXu  
       2014-08-23 15:58:15 +08:00
    你觉得Python能做什么, 他就能做什么.... time to code now
    frankzeng
        8
    frankzeng  
       2014-08-23 22:14:18 +08:00
    我觉得你可以处理完数据再入数据库,python用来处理数据爽歪歪的,谁用谁知道。你把处理完的数据存进数据库,再做个页面就行了,搞什么图形界面。
    meteor2013
        9
    meteor2013  
    OP
       2014-08-23 22:39:05 +08:00
    @frankzeng

    你的意思就是分两个步骤:

    1. 处理数据,存入数据库
    2. 做个页面显示。

    听起来我也觉得很合理,但有一个问题在步骤1.
    我是用iPython这样的工具来处理数据好呢?http://ipython.org
    还是在像Sublime一样的开发工具中写代码来处理数据呢?
    frankzeng
        10
    frankzeng  
       2014-08-23 22:59:35 +08:00
    linux下就用vim,windows就用notepad++,用啥工具不重要,重要的是处理的算法,几十G的数据如果没有优化,跑不完的。
    meteor2013
        11
    meteor2013  
    OP
       2014-08-23 23:20:05 +08:00
    @frankzeng

    1. 意思是没有必要在iPython中处理了?
    2. 还有就是数据库的话,这么大的数据量,MySQL抗得住吗?需要用Hadoop吗?
    Zuckonit
        12
    Zuckonit  
       2014-08-23 23:23:02 +08:00
    @meteor2013 不一定存在一个数据库里
    likuku
        13
    likuku  
       2014-08-24 16:30:51 +08:00
    @meteor2013 50G也算「大」?如果只是逐行读取的,使用纯文本保存和塞数据库没啥本质区别,前者还更简单。
    likuku
        14
    likuku  
       2014-08-24 16:32:52 +08:00
    @meteor2013 hadoop ?你想从50G里全部过滤一遍,捞某个字段,还要限制在很短时间内么?你物理机器很多么?要这么干的话,hadoop适合。
    mckelvin
        15
    mckelvin  
       2014-08-24 18:05:40 +08:00   ❤️ 1
    可以尝试下MapReduce框架DPark https://github.com/douban/dpark 安装配置都非常简单。数据有50G,而单机内存只有8G这种事情不需要使用者担心。把数据放在文件系统里,写简单的Python代码即可,处理完毕之后的数据体积不大可以考虑在ipython上用numpy, scipy, pandas, pylab 等库做分析和可视化。
    ruoyu0088
        16
    ruoyu0088  
       2014-08-25 06:25:48 +08:00
    我觉得可以先试试HDF5文件格式。

    如果是类似CSV文本之类的文件,可以用pandas分段读取,然后将DataFrame写入HDF5文件。分析步骤要看你做怎样的分析了。
    happywowwow
        17
    happywowwow  
       2014-08-25 10:33:41 +08:00
    可视化最近看到python的urwid库,不知道合不合要求
    lu18887
        18
    lu18887  
       2014-08-25 11:38:53 +08:00
    @likuku 可视化,没有经过数据库的统计分析语句,程序写起来还是蛮困难的!
    楼主你是要做一套完整的程序还是单纯的要处理这些数据呢?
    目的不同,方法不同
    no13bus
        19
    no13bus  
       2014-09-04 11:05:15 +08:00
    @frankzeng 你处理数据用到了哪些库?大致常用的是哪些处理方法呢?请教下
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   975 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 20:18 · PVG 04:18 · LAX 12:18 · JFK 15:18
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.