前言
集成开发环境(IDE)是提供给程序员和开发者的一种基本应用,用来编写和测试软件。一般而言,IDE 由一个编辑器,一个编译器(或称之为解释器),和一个调试器组成,通常能够通过 GUI(图形界面)来操作。
根据*的描述:“Python 是一种广泛使用的高级的、通用的、解释的、动态编程语言。” Python 是一种相当古老且流行的语言,它是开源的,常被应用于网站开发(利用 Django、Flask 等框架)、科学统计计算(NumPy、SciPy 等库可以帮助计算)、软件开发等甚至更多。
文本编辑器不足以用来构建一些大型的系统,比如那些需要整合模块和库的系统。这时则需要一个好的IDE。
下面是一些 Python IDE,这些 IDE 各有特点,能够帮助你挑选到合适的来解决你的机器学习问题。
1、JuPyter/IPython Notebook
Jupyter 项目开始于 2014 年,在所有编程语言中,是一种用于支撑科学计算和交互式计算科学的衍生式 IPython。
IPython Notebook 表示” IPython 3.x 是 IPython 的最后一个版本。而 IPython4.0 中非语言相关的部分比如记事本格式,消息协议,笔记本网站应用等,已经移到了Jupyter下作为新项目,IPython将专注于交互式Python,在此期间,也将为 Jupyter 提供 Python 核心模块”。
Jupyter 由三个组件构成:笔记本应用程序、内核、笔记本文件。
其核心特点:
开源。
支撑 30 种语言,包括一些数据科学领域很流行的语言,如 Python、R、scala、Julia 等。
允许用户创建和共享文件,文件中可以包括公式、图像以及重要的代码。
拥有交互式组件,可以编程输出视频、图像、LaTaX。不仅如此,交互式组件能够用来实时可视化和操作数据。
它也可以利用 scala、python、R 整合大数据工具,如 Apache 的 spark。用户能够拿到和 pandas、scikit-learn、ggplot2、dplyr 等库内部相同的数据。
markdown 标记语言能够代码标注,用户能够将逻辑和思考写在笔记本中,这和python内部注释部分不同。
Jupyter 笔记本的用途包括数据清洗、数据转换、统计建模和机器学习。
在像 matplotlib、NumPy、Pandas 等库里整合了机器学习的一些特性。Jupyter 笔记本有一个最重要的特性就是它能够用图显示单元代码的输出。
在 Google、微软、IBM 等公司它很流行,另外一些教育机构如加州大学伯克利分校和密歇根州立大学也经常用。
2、 PyCharm
PyCharm 由一家位于捷克-布拉格的公司JetBrains所开发。它的测试版在 2010 年 7 月发布,1.0 版本在三个月以后也就是 2010 年 10 月发布。
PyCharm 是一款有十足特性的专业的PythonIDE。共有两个版本:PyCharm 社区版,是免费的,另一款是专业版,有30天的免费试用期。
PyCharm 在一些大公司诸如惠普、Pinterest、推特、Symantec、Groupon 等大公司十分流行。
其核心特点:
它能对类、对象、关键字的补全和自动缩进,能格式化代码,定制代码片段和格式。
支持错误的突出显示,同时也包含 PEP-8,能帮助写出整洁的代码,易于支撑其他语言。
它提供快速和安全的重构功能。
它带有一个图形界面式的 Python/JavaScript 调试器。用户能够基于 GUI 来测试。
它有一个快速的文档定义视图,能在不丢失上下文的情况下看到文档或对象的定义。同时 Jetbrain 提供的文档十分全面,还包含视频教程。
当然。最重要的一个特性就是它对 Scikit-learn, Matplotlib, Numpy, Pandas等机器学习库的支持。
在 Matplotlib 交互模式可以运行在 Python 或者是调试的控制台上,用户可以实时进行画图,组织。
另外,用户能够根据自己的项目定义不同的 python 环境(Python2.7、Python3.0、虚拟环境)。
3、Spyder
Spyder代表科学Python开发环境的缩写。Spyder 的作者是 Pierre Raybaut,在 2009.10.18 发布,Spyder 是用 python 写的。
其核心特点:
开源。
支持代码纠错,分析,补全,水平或垂直切分,跳转标记。
提供 Python 和 Ipython 控制台工作空间,支持实时调试。比如,你只要键入,它就能显示错误。
文档查看器,能够显示控制台上或编辑器中调用的类或者功能其相关文档。
它支持变量的预览,比如用户在图形界面操作数组文件的时候,能够同时浏览和编辑这些在执行期间产生的变量。
它整合了 NumPy, Scipy, Matplotlib 以及其他的科学统计库。在 NumPy, Scipy, Matplotlib 这些库的基础上,使用交互式控制台构建和测试数据统计应用或者脚本的时候,Spyder 是最好的。
除了这个,它也是一款机器简单,轻量级的软件,易于安装,有非常详细的文档。
4、Rodeo
Rodeo 是一款专门用于做机器学习和数据科学的 Python IDE。由 Yhat 开发,使用 IPython 的内核。
其核心特点:
便于浏览,比较,数据与图之间的交互操作。
Rodeo 文本编辑器提供自动补全,语法高亮,且内置的 IPython 支持编码更快。
Rodeo继承了 Python 教程,它包括一些速查表能够快速查询资料。
对于用习惯了 R 和 RStudio IDE 的研究人员和科学家来说,它很有用。
它有很多与 Spyder 相似的特性,但是它缺少了代码分析,PEP 8 等。也许未来会补充一些新的特性吧。
5、Geany
Geany 是一款有 C/C++ 开发的 Python IDE,作者是 Enrico Tröger。最早的版本在 2005 年 10 月 19 日,它是一个小而轻量级的IDE(Windows版本为 14M),但和其他任何一个 IDE 一样能胜任工作。
其核心特性:
支持语法高亮和行号标注。
代码自动补全,关闭括号,自动关闭 HTML 和 XML 标记的功能。
代码折叠和导航。
用户可以利用额外代码来在外部编译系统和执行代码。
对于那些熟悉 RStudio,想找寻 python 支持的用户。RStudio 已经为Python、XML、YAML、SQL 甚至 shell 都提供了编辑支持,即在 2014 年 6 月 18 日发布的 0.98.932 版本中。虽然相比于 R,Python 仅有一点支持。
总结
觉得对于新手,尤其只用过C/C++的新手而言,spyder最接近于VS的操作是最容易上手的;
用过PyCharm你不会考虑其他IDE了。
同时,大家可以关注我的个人博客:
http://www.cnblogs.com/zlslch/ 和 http://www.cnblogs.com/lchzls/ http://www.cnblogs.com/sunnyDream/
详情请见:http://www.cnblogs.com/zlslch/p/7473861.html
人生苦短,我愿分享。本公众号将秉持活到老学到老学习无休止的交流分享开源精神,汇聚于互联网和个人学习工作的精华干货知识,一切来于互联网,反馈回互联网。
目前研究领域:大数据、机器学习、深度学习、人工智能、数据挖掘、数据分析。 语言涉及:Java、Scala、Python、Shell、Linux等 。同时还涉及平常所使用的手机、电脑和互联网上的使用技巧、问题和实用软件。 只要你一直关注和呆在群里,每天必须有收获
对应本平台的讨论和答疑QQ群:大数据和人工智能躺过的坑(总群)(161156071)