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

2014-08-23 13:02:19 +08:00
 meteor2013
目前有很多数据50G以上。准备把它存到数据库中,然后进行分析,处理,最后可视化。

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

请问用Python怎么处理好呢?

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

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

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

谢谢
3801 次点击
所在节点    Python
19 条回复
14
2014-08-23 13:06:56 +08:00
你想的差不多了,现在可以去写代码了…
meteor2013
2014-08-23 13:14:02 +08:00
@14 那种方案比较好呢?

如果第一种在iPython里面的话。其实不需要写多少。
第二种的工作量到是不小的。
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
2014-08-23 13:20:34 +08:00
@imn1


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

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

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

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

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

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

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

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

如果是类似CSV文本之类的文件,可以用pandas分段读取,然后将DataFrame写入HDF5文件。分析步骤要看你做怎样的分析了。
happywowwow
2014-08-25 10:33:41 +08:00
可视化最近看到python的urwid库,不知道合不合要求
lu18887
2014-08-25 11:38:53 +08:00
@likuku 可视化,没有经过数据库的统计分析语句,程序写起来还是蛮困难的!
楼主你是要做一套完整的程序还是单纯的要处理这些数据呢?
目的不同,方法不同
no13bus
2014-09-04 11:05:15 +08:00
@frankzeng 你处理数据用到了哪些库?大致常用的是哪些处理方法呢?请教下

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

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

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

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

© 2021 V2EX