正式学习python之前的准备工作

准备工作当然就是部署环境,首先,python目前还属于一个2.x到3.x的过渡阶段,所以现在是即有一部分资料是2.x的,又有一部分是3.x的,到底选哪个版本呢,我个人推荐3.x,如果是几年前,我可能还会犹豫是不是用2.x的版本,因为很多重要的模块还不兼容3.x,现在已经基本没这个问题了,3.x毕竟是未来的趋势,既然不妨碍使用,就果断选择新版本,而且我们做数据挖掘的时候经常面临中文的问题,毕竟这是在中国,给大家看一下交互环境下中文的显示,你们就明白3.x的优势了:

先看一下2.7的:

《正式学习python之前的准备工作》
《正式学习python之前的准备工作》

再看一下3.6的:

《正式学习python之前的准备工作》
《正式学习python之前的准备工作》

相信大家不会愿意自己的中文数组在显示的时候都是各种编码,还得一个个print出来看。

好,版本确定了,接下来就是集成环境和ide,ide的话我试过enthought canopy,pycharm,eclipse,用下来感觉pycharm最好看,所以平时都是pycharm,但是对django项目的支持不是很好,比如数据结构的迁移同步这些操作没有现成的功能(有可能有,只是我没发现而已),所以有时候搞django项目的时候用eclipse,总体来说这几个ide都还行啦,毕竟不是那么挑剔。

还有一个是集成环境,这个非常重要,不是说非得装的时候就自带那些包,毕竟pip install很方便了,而是这里有一个可能有些同学不知道的东西,叫线性加速库,比较出名的有mkl、openblas、atlas,多核cpu的情况下这些包能极大的提升矩阵运算的速度,比如最常见的矩阵点乘,装了加速库和没装运行速度差个7-8倍估计得有,而大多数机器学习迭代运算的时候都是矩阵运算,所以线性加速库的重要性不言而喻,这几个线性加速库不太好装,所以为了避免各种试验改配置,最好是有个集成环境能一键把这事干了,这才是我们想要的,所以如果是直接裸装的python,在装numpy和scipy的时候记得把线性加速库给装了并配置上,这里推荐anaconda3

《正式学习python之前的准备工作》
《正式学习python之前的准备工作》

看起来anaconda3的numpy.dot没有经过加速(numpy.dot.__module__是multiarray的就不是用这些加速库编译的),看官方文档也说要收费才可以,但是经过实际测试,发现它是实现了加速效果的,看macos自带的python27,numpy是blas编译的:

《正式学习python之前的准备工作》
《正式学习python之前的准备工作》

再看一下anaconda3的python3.6表现如何:

《正式学习python之前的准备工作》
《正式学习python之前的准备工作》

表现比blas加速的还要略好,所以这就是为什么我坚信anaconda3的numpy是mkl加速包编译过的,这里注意3.x的print一定呀加括号。

再大致讲一下python的运行环境,python的使用非常随意,一种是像我上面那样,在终端直接进入python交互环境,这里推荐ipython,其中好处自己可以体会,二种是在ide中执行,自由度不如ipython,三种是直接用命令执行.py文件,这种主要用在工程部署上。

最后,再说一下,真的有空去锻炼一下英语阅读能力,各种文档,报错,算法模块里的注释都是英文的, 看不懂英文学到后面事倍功半~

    原文作者:bnuxuliang
    原文地址: https://zhuanlan.zhihu.com/p/30483511
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞