python(x,y)和winpython都是开源项目,其项目负责人都是pierreraybaut。按pierre自己的说法是“winpython不是试图取替python(x,y),而是出于不同动机和理念:更灵活、易于维护、可移动、对操作系统侵略性更小,但是用户友好性更差、包更少、没有同windows资源管理器集成。”。参考1里面说python(x,y)不是很稳定,此外看它目前的更新不是很频繁,确实有可能pierre后来的工作重心放在winpython上了。
canopy和anaconda是公司推的,带免费版和商业版/插件。这两款发行版也牵扯到一个人,那就是travisoliphant。travis是scipy的原始作者,同时也是numpy的贡献者。travis在2008年以副总裁身份加入enthought,2012年以总裁的身份离开,创立了一个新公司continuum.io,并推出了python的科学计算平台anaconda。anaconda相对canopy支持python的版本更多,对python新版本支持跟的很紧(sage不支持python3.x的理由是因为其依赖的scipy还不支持python3,而anaconda却实现了支持python3.3和3.4,这就说明问题了),此外其在linux平台下(通过conda管理)安装更方便。
[原创]选择python科学计算发行版
两者使用的是相同的界面--spyder。到底有什么区别呢,哪个更好一些?回复内容:不请自来。本问题回答于2015年末,未来可能会出现个人不同意当前观点的状况。
种种迹象表明,从13-14年开始在科学计算领域使用anaconda对于我确实是一个不错的选择。作为一个“科学计算发行版”,而不是一个专用于其他功能的发行版,我会给anaconda 9分(满分10)
pros:
1 anaconda 作为科学计算/数据挖掘的工具效能让人满意。
我认为一些科学计算必要的工具在anaconda中默认安装:
numpy+scipy的底层组合
pandas对结构化/非结构化数据的转换以及灵活的处理
statsmodels,scikit-learn、networkx等对于数据挖掘的支持在anaconda里面是默认安装的
当然工作中我还会关注一些conda没有收录的可爱功能,这其中包括:
词云绘图工具wordcloud
社交网络挖掘的louvain算法
gradient boosting工具xgboost
更多功能大家自己到github, bitbucket, sourceforge等都可以找到,就不赘述。
2 anaconda 作为知识传导的工具令人满意。
在其他回答中我看到了有人提到ipython notebook无法正常工作,新手应该注意一下不要在翻墙的同时使用这个功能,它的原理是本地开端口建立一个server,在浏览器中可以打开ipynb文档,开启python kernel,执行代码以及写markdown风格的文档。我从ipython 2.x的版本一直用到4.0(已经更名为jupyter),这个工具可以同时支持python、julia和r脚本的notebook,实现图文码并茂的文档。它的好处就是,html可以置于服务器端,而notebook可以直接共享给他人或者放在github上。
当我提到绘图的时候,我的意思是bokeh。基于bokeh.js,你的静态图和动图都可以放在ipython notebook里面或者使用bokeh-server写在服务器上。python和javascript之间交换数据我没有感觉到丝毫的不适,而bokeh本身对于高等、低等图形元素的设计让人感觉恰到好处。作为一个processing2和r ggplot2的前用户,上手bokeh花了大概1-2天。
(小广告:出于私心推荐processing 3,现在支持python。值得上手一玩)
图文码并茂的文档我私人观点认为,未来是一个大方向:一个200人的公司,下至你手底下的小卒,上至ceo,都会从文档中获取他们需要整合的信息。作为数据分析师,数据科学家这种有些容易被码工鄙视实干不足,又被运营嗤之以鼻不够业务敏感不接地气的岗位,用数据讲出你想讲出的李菊福的故事应该是基本功。
3 anaconda的工具生态圈让我觉察到了它未来的布局或者说野心。
且不说win/macos/linux通吃,请看如下链接中的pdf链接 learn more about anaconda
anaconda提出了数据科学生态圈的概念,我认为这是经过凝练浓缩之后的总结出来的一套方法论。
数据整合、探索、统计分析、挖掘、预测(见第一点)数据的仪表板、故事板乃至bi工具(见第二点)代码底层加速能力:合理利用cpu(blaze生态系统,intel mkl)、gpu(cuda jit)、spark企业工具:本地部署的协作开发平台wakari、本地定制化部署的hadoop spark(已有docker)
结合方法论提供解决别人痛点的工具是虚幻的,所以continuum analytics自己也做数据、算法的咨询服务。我认为有一大批压根没有远见的、没有真正以数据为核心做数据科学的所谓大数据公司,他们是真正好用技术的怀疑论者,我向来是无视的。
cons:
1 技术群里面很多小伙伴反馈说conda生态圈更新慢。一般会晚1-2个月,比如ipython 4.0或者说python 3.5的整合。我希望有的是稳定、简单的版本,对更新的需求可以压抑一下。
2 有些本来可以免费找到的资源在anaconda中收费,比如numpy w/ intel mkl。而且,个人无法负担本地部署的wakari企业级协作开发产品和hadoop spark集群产品。如果你有兴趣可以写邮件quote之。
3 回头看到题主提到的spyder我跟你说我强迫症又犯了。spyder作为ide提供的是类似matlab或者rstudio的体验,python作为开发语言,除了ipython notebook以外,我建议你从以下2个工具里2选1,这2个可都不是anaconda自带的工具了。
pycharm,jetbrains的精品,win/macos/linux全平台。不多解释了。sublime text 3,编辑器里我用着挺顺手(代码风格检查、高亮、代码上传、多翻译器切换)
那些说vim的,你过来咬我啊!
================================================================
作为一个anaconda的收费产品使用者,我得承认在几乎所有的技术群里面我表现的都像官托。
管它呢!life is short, no bb.用过两个软件后,我发现自己偏爱anaconda啊!
大家都喜欢美观易用的user interface,这样的话anaconda是个不错的选择,界面漂亮,更方便管理那些libraries,而且会对版本更新比较勤快。
其实说实话,我原来都是自己手动安装所有的libraries的,从来不借助这些第三方软件,感觉这样比较cool,可是经常会出现那些停留在python2.x的libraries,还要自己动手修改代码,才可以用,真是痛心疾首,后来找了很多的第三方,比如题主说的 (x,y)python,anaconda,还有enthought,winpython。后来综合考虑了,软件的美观程度,版本兼容性,更新频率,管理难易程度,我还是选择了anaconda这条大水蟒。
一般堆代码也都是在ipython notebook里面完成的,很少去spyder里面编辑,毕竟能少打开一个软件窗口就要节省一个窗口,而且整合在浏览器中的ipython notebook对代码每一步的测试很好用,命令行和批处理完美的融合在了一起,而且学会了markdown语言后,整个就是一个笔记本,无论是图片,视频,数学公式,还是项目列表,表格,各种格式的文本都可以在一个ipnb文件里完成。是科学工作者和程序员的好笔记本,只有更爱它。
可以插入图片
可以插入网页可以插入网页
可以绘制表格可以绘制表格
可以嵌入网络链接可以嵌入网络链接
可以直接绘图
可以编辑数学公式可以编辑数学公式
对 pandas 的良好支持对 pandas 的良好支持
anaconda 和 winpython 都用过,anaconda用得少些,windows下主要用winpython。
python如果不是做开发的话,相比spyder, 用ipython notebook是更好的选择.
有关两者的区别就我了解有如下几点:
1,我曾经让学生装anaconda作为python课上的使用软件,但是不少同学安装都出现问题,最主要的就是ipython notebook用不了,而后改用winpython,出现问题的情况变少了。这发生在2013年,之后上课就统一用winpython了。
2,winpython脱胎于pythonxy,面向科学计算,兼顾数据分析与挖掘,;而anaconda主要面向数据分析与挖掘方面,在大数据处理方面有自己特色的一些包, 据说在极大的矩阵运算方面速度很快。
3,winpython强调便携性,被做成绿色软件,不写入注册表,安装其实就是解压到某个文件夹,移动文件夹甚至放到u盘里在其他电脑上也能用。anaconda则算是传统的软件模式。
4,winpython是由个人维护;anaconda是由一家数据分析服务公司维护;这个区别意味着winpython在很多方面都从简,而anaconda会提供一些人性化设置。
5,winpython 只能在windows上用,anaconda则有linux的版本。
大致就这些,其实两个集成平台最大的区别还是其集成的软件包的区别,在windows下装python的包容易出问题,你需要哪些包,而其中一个有,那就选那个。
抛开软件包的差异,我个人推荐初学者用winpython,我觉得它似乎正因为其简单,问题也少点,由于便携性的特点系统坏了,重装后也能直接用。
最后一个建议,用python时间长了,最终还是会在linux下用的。windows下太缚手缚脚了。anaconda在win 下各种崩溃,还是用winpython吧。我是win7,用的最新版和11月的次新版。没用过winpython,只用过anaconda
用了anaconda觉得已经很好用了jp morgan和credit suisse用anaconda,朋友告诉我citi也是用那个。看看哪个你们行业用的广泛就用哪个呗~linux --> anaconda
windows --> winpython
anaconda在windows环境下问题多,notebook用不了。在 windows 下我推荐 anaconda,或者说其背后的 conda 包管理系统。它提供了和 pip 类似的管理功能并且有所增强(例如支持 env),并且,所有的包都是编译好的,不必像 pip 那样安装 numpy 和 scipy 时折腾许久。如果觉得默认包配置太累赘的话,完全可以下载 conda 最小包 miniconda (miniconda — conda)来进行安装据说anaconda的源在墙外,访问不稳定。
我用anaconda安装r语言支持,一直没成功。
an unexpected error has occurred, please consider sending the:--:-- 0.00 b/s
following traceback to the conda github issue tracker at:
https://github.com/conda/conda/issues
include the output of the command 'conda info' in your report.
traceback (most recent call last):
file /opt/conda/lib/python3.5/site-packages/requests/packages/urllib3/response.py, line 226, in _error_catcher
yield
file /opt/conda/lib/python3.5/site-packages/requests/packages/urllib3/response.py, line 301, in read
data = self._fp.read(amt)
file /opt/conda/lib/python3.5/http/client.py, line 433, in read
n = self.readinto(b)
file /opt/conda/lib/python3.5/http/client.py, line 473, in readinto
n = self.fp.readinto(b)
file /opt/conda/lib/python3.5/socket.py, line 575, in readinto
return self._sock.recv_into(b)
file /opt/conda/lib/python3.5/ssl.py, line 924, in recv_into
return self.read(nbytes, buffer)
file /opt/conda/lib/python3.5/ssl.py, line 786, in read
return self._sslobj.read(len, buffer)
file /opt/conda/lib/python3.5/ssl.py, line 570, in read
v = self._sslobj.read(len, buffer)
connectionreseterror: [errno 104] connection reset by peer
during handling of the above exception, another exception occurred:
traceback (most recent call last):
file /opt/conda/bin/conda, line 5, in
sys.exit(main())
file /opt/conda/lib/python3.5/site-packages/conda/cli/main.py, line 173, in main
args_func(args, p)
file /opt/conda/lib/python3.5/site-packages/conda/cli/main.py, line 180, in args_func
args.func(args, p)
file /opt/conda/lib/python3.5/site-packages/conda/cli/main_install.py, line 45, in execute
install.install(args, parser, 'install')
file /opt/conda/lib/python3.5/site-packages/conda/cli/install.py, line 423, in install
plan.execute_actions(actions, index, verbose=not args.quiet)
file /opt/conda/lib/python3.5/site-packages/conda/plan.py, line 538, in execute_actions
inst.execute_instructions(plan, index, verbose)
file /opt/conda/lib/python3.5/site-packages/conda/instructions.py, line 148, in execute_instructions
cmd(state, arg)
file /opt/conda/lib/python3.5/site-packages/conda/instructions.py, line 52, in fetch_cmd
fetch(state['index'], arg)
file /opt/conda/lib/python3.5/site-packages/conda/instructions.py, line 48, in fetch
fetch_pkg(index[fn])
file /opt/conda/lib/python3.5/site-packages/conda/fetch.py, line 296, in fetch_pkg
download(url, path, session=session, md5=info['md5'], urlstxt=true)
file /opt/conda/lib/python3.5/site-packages/conda/fetch.py, line 376, in download
chunk = resp.raw.read(2**14)
file /opt/conda/lib/python3.5/site-packages/requests/packages/urllib3/response.py, line 311, in read
flush_decoder = true
file /opt/conda/lib/python3.5/contextlib.py, line 77, in __exit__
self.gen.throw(type, value, traceback)
file /opt/conda/lib/python3.5/site-packages/requests/packages/urllib3/response.py, line 244, in _error_catcher
raise protocolerror('connection broken: %r' % e, e)
requests.packages.urllib3.exceptions.protocolerror: (connection broken: connectionreseterror(104, 'connection reset by peer'), connectionreseterror(104, 'connection reset by peer'))
the command '/bin/sh -c conda install --yes rpy2 r-base r-irkernel r-plyr r-devtools r-dplyr r-ggplot2 r-tidyr r-shiny r-rmarkdown r-forecast r-stringr r-rsqlite r-reshape2 r-nycflights13 r-caret r-rcurl r-randomforest' returned a non-zero code: 1我来安利一下canopy。
主界面长这样,
目前最新的版本是1.7。如果你还是学生,可以用学校邮箱注册账号登录,解锁debug 功能。
重点安利它家的package manager 功能,界面长这样,
可视化的安装界面,妈妈再也不用担心我的package 缺失/版本混乱/安装路径不明啦!
canopy 为您贴心准备了所有常用的科学计算包,包括大名鼎鼎的numpy,scipy,pandas等等。numpy 的安装情况长这样,
连pip install 都不用啦!鼠标点点,安装卸载轻轻松松。甚至可以回溯历史版本!是否过于炸裂!
同时canopy 对于jupyter notebook 的支持也很棒,可以在editor 里直接查看、编辑。
个人认为canopy 最棒的一点是如果在安装时将它设置为default ,之后就不需要担心python 的编译环境了。canopy 自动为你创建出一个virtualenv,使你专心于具体的实现,不必担心底层的情况。
最后,pycharm 也是极好的!然而我用sublime text 码代码。。。(一黑黑俩