好啦~继续昨天的《第二步——开发环境与工具篇(上)》~
其实有点尴尬啦,本来想一篇讲完的,结果小夕太啰嗦了,还没有开始讲正文,就写了快2000字了。。。所以说,这一篇是上一篇的正文。。。
matlab就不用说了,matlab程序本身就集成了所有你需要的东西了~顺便提一下,没有条件使用特殊免收费版matlab的时候,octave甚至一些在线octave网站都是可以接手matlab的~
C、C++、Java也不用多说了,C/C++就用VS、Xcode、Qt等IDE吧,同样,Java也是就用intellij idea或者eclipse等IDE吧(小夕觉得前者更好用)。
下面重点说python,也是我们做机器学习完整项目时的主力语言。
文本/代码编辑器(上):
Python的代码编辑器与解释器,小夕强烈推荐Jupyter Notebook(前身是Ipython,以下简称JN)。
官网:http://jupyter.org/
JN不仅可以让你码代码,而且可以让你优雅的码出优雅的代码~直接上个临时乱写的演示截图(忽略代码里大量语法错误啦~)
它是由很多单元格组成,每个单元格你可以设置成文本格,也可以设置成代码格。对于文本格,可以让你用markdown排版文字,用latex写数学公式,如上图第1、3、5个格子~比如第5个格子,运行一下,markdown和latex源码就被转化成了漂亮的排版和公式:
而我们在JN中写完函数,下面就可以紧跟着做一下单元测试(当然仅对于方便做这个的函数)。比如上面的,我们定义了优化函数,下面就可以紧跟着写个单元测试的代码。这样做是因为每个单元格都是可以独立运行的啦,得益于它内嵌的解释器~
比如我们运行一下第二个单元格。
可以看到这个单元格里的代码就运行了~
当代码完成之后,可以进一步进行整体调试的时候,就可以把它导出为python代码啦:
所以JN尤其适合去写机器学习,或者说科学计算相关的项目代码。在完成一个很复杂的数学过程的函数前,你完全可以用一个文本单元格来详细的描述这个函数的功能和实现细节,然后再优雅的实现这个函数。是不是炒鸡棒呢~
这里小夕只是给大家稍微介绍一下,它的功能和特色远比小夕说的多得多,官网的详细的教程链接贴在这里了~
https://jupyter-notebook.readthedocs.io/en/latest/index.html
英语基础比较惨的同学可以试试用chrome翻译成中文,或者直接找中文博客啦。
文本/代码编辑器(下):
JN适合优雅的写代码,但是不适合重量级的代码阅读或者数据集预览。这时候就需要一款传统的高性能代码编辑器啦。小夕在此力推Sublime Text 3。
比如你的数据集是一个700多M的纯文本,里面有几十万的样本,比如下面:
然后你想看一下这个数据集里面是什么样子的,什么想进去匹配一些关键字看看有没有。那怎么办呢?为此去敲代码也太麻烦啦~而大部分的编辑器开这么大的文件的时候往往卡半天甚至直接崩溃。而用sublime的话:
打开过程非常优雅啊有没有~而且丝毫不卡,不会影响你其他的工作。
就这么优雅的打开了~进行查找替换等操作也是相对来说很优雅的啦。
这种高性能文本编辑器,也可以通过安装插件打造成一个轻量级IDE,不过小夕不建议初学者尝试啦。如下,project管理,代码编译、运行、检查等功能一应俱全,当然是因为安装了一堆插件的原因。
哦对了,刚下载好的Sublime的界面跟小夕的不一样的,小夕DIY了部分皮肤,2333,相关的DIY教程网上也有很多,但是小夕不建议初学者弄的太复杂,仅仅把它作为一个性能重量级,使用轻量级的文本/代码的编辑器/阅读器就可以啦。
IDE:
代码完成了~需要整体调试、打包的时候怎么办呢?当然就需要一个正式的IDE啦~当然主要用的是它的调试器和项目管理的功能。
从小夕的使用体验来看,Pycharm给小夕的感觉最棒。而且也有免费版,功能足够了。
快捷键、皮肤什么的都可以方便的DIY,而且可以白天、夜间快速切换主题~
如图,白天么么哒~
晚上。。。
项目管理、运行与调试等基本技能小夕就不讲了,下面小夕只讲一下如何将其与我们的环境管理软件协同工作。
开发环境管理:
不仅代码编辑器没有使用pycharm(当然啦,调试代码的时候当然使用pycharm内置的编辑器更方便),而且开发环境管理也没有使用pycharm的,当然是因为有更好用的~
那就是Anaconda。
相信很多人都听说过anaconda了。使用它可以很方便的管理开发环境(不理解开发环境概念的同学务必先返回上一篇理解一下)。
安装好anaconda后,在命令行里一句
就可以创建一个名为“myenv”的开发环境(虚拟机)。(注意!不同操作系统下的命令可能不一样!以官方文档为准。)
要管理这个虚拟机里的资源,就进入(激活)这个虚拟机,也是一句:
就可以进入这个虚拟机里。然后通过“conda list”查看当前虚拟机里的资源(已安装的库及其版本),使用“conda install”安装新的库,使用“conda uninstall”卸载已安装的库,而且与python自带的安装器“pip”完美融合,管理开发环境炒鸡方便有没有。
那在anaconda把开发环境管理好了,如何在pycharm中使用anaconda管理的开发环境呢?
只需要在创建新项目的时候,解释器选择虚拟机里的python解释器就可以啦:
(当然,也可以在这里点击“Create Conda Env”直接新建一个Anaconda环境,都是相通的)
虚拟机一般是在anaconda的安装目录下的env文件夹下,如图,小夕这里有4个开发环境:
确定好要用哪个开发环境后,就进去选择bin文件夹里的python:
就ok啦~
然后在项目开发过程中,使用anaconda添加了新的库的时候,就可以pycharm的File标签下同步一下,就ok了~
总结一下,小夕推荐的python利器有:
1、jupyter notebook:优雅的写代码与单元测试的代码编辑器。
2、sublime text 3:高性能的文本/代码编辑/阅读器。
3、pycharm:方便项目管理与调试的IDE。
4、anaconda:开发环境管理的利器。
这些神器的使用教程小夕就不写了,还是首推官网的教程,无法接受英语的同学可以寻找中文优秀博客甚至视频教程。这是小夕御用的开发神器哦(逃\(//∇//)\
对了,如果大家有私藏的神器,欢迎发到评论区共享哦( ̄∇ ̄)