详解Python中的Numpy、SciPy、MatPlotLib安装与配置


Posted in Python onNovember 17, 2017

用Python来编写机器学习方面的代码是相当简单的,因为Python下有很多关于机器学习的库。其中下面三个库numpy,scipy,matplotlib,scikit-learn是常用组合,分别是科学计算包,科学工具集,画图工具包,机器学习工具集。

numpy :主要用来做一些科学运算,主要是矩阵的运算。NumPy为Python带来了真正的多维数组功能,并且提供了丰富的函数库处理这些数组。它将常用的数学函数都进行数组化,使得这些数学函数能够直接对数组进行操作,将本来需要在Python级别进行的循环,放到C语言的运算中,明显地提高了程序的运算速度。

scipy:主要是一些科学工具集,信号处理工具集(如线性代数使用LAPACK库,快速傅立叶变换使用FFTPACK库)及数值计算的一些工具(常微分方程求解使用ODEPACK库,非线性方程组求解以及最小值求解等)。

scikit-learn:里面有很多机器学习相关的算法(如聚类算法,SVM等)。

Python安装完Numpy,SciPy和MatplotLib后,可以成为非常犀利的科研利器。网上关于这三个库的安装都写得非常不错,但是大部分人遇到的问题并不是如何安装,而是安装好后因为配置不当,在使用时总会出现import xxx error之类的错误。我也是自己摸索了很久才发现如何去正确配置的。下面就详细说下安装和配置的过程。

1.安装Python,这里选择2.7还是3.4都行,不过推荐使用2.7,毕竟现在的教程大部分还是基于2.7的,3.4跟2.7的语法还是略有不同,为了避免语法错误的麻烦,还是推荐大家使用2.7。下载地址为:https://www.python.org/downloads/

2.下载Numpy,SciPy,MatplotLib这三个库的exe,注意,这里用的是exe,因为MatplotLib的使用需要以Numpy的支持,所以最好先装NumPy再装MatplotLib。下载地址:

NumPy: http://sourceforge.net/projects/numpy/files/NumPy/1.9.2/
SciPy: http://sourceforge.net/projects/scipy/files/scipy/0.15.1/
MatPlotLib: http://matplotlib.org/downloads.html

其中NumPy和SciPy没有32和64位的区别,MatPlotLib需要根据自己的系统选择32位和64位的。再次提醒,这三个库一定都要下载对应版本的exe。下载完成后一次安装就是了,他们会自动找到你之前安装好的Python所在的路径的,一路Next到底就行了。

3.在第2步安装完成后,可以在MatPlotLib的Examples页面(http://matplotlib.org/examples/index.html)Copy代码运行,发现一定会出错。这里出的错,大体有三个:

  1. ImportError: matplotlib requires dateutil
  2. ImportError: matplotlib requires pyparsing
  3. No module name six

4.解决No module name six问题,解决办法很简单。把你的安装路径:Python27/Lib/site-packages/scipy/lib中的six.py,six.pyc,six.pyo三个文件拷贝到 你的安装路径:Python27/Lib/site-packages,这个问题就解决了。如何还不行,请记住这个地址(非常重要):http://www.lfd.uci.edu/~gohlke/pythonlibs/

然后下载这个文件:six‑1.9.0‑py2.py3‑none‑any.whl,下载后,利用CMD进入到该文件所在的目录(DOS命令为:cd /d XX:/XXX/six‑1.9.0‑py2.py3‑none‑any.whl 把你自己的six文件的所在路径按格式粘贴进DOS然后回车就行了),然后输入命令:pip install six-1.9.0-py2.py3-none-any.whl,等DOS命令跑完,six不存在的问题就解决了。操作图如下:

详解Python中的Numpy、SciPy、MatPlotLib安装与配置

5.解决ImportError: matplotlib requires dateutil问题,方法和第4步一样,下载python_dateutil‑2.4.2‑py2.py3‑none‑any.whl,然后pip install就可以解决该问题了。操作如下:

详解Python中的Numpy、SciPy、MatPlotLib安装与配置

6.解决ImportError: matplotlib requires pyparsing问题,还如同之前一样,下载pyparsing‑2.0.3‑py2‑none‑any.whl(选择对应的版本,这里有2和3的区别)然后利用pip install安装好就可以了。操作如下:

详解Python中的Numpy、SciPy、MatPlotLib安装与配置

到此,所有的配置就完成了,可以愉快地使用MatPlotLib进行科学画图和计算了。另外提醒一句,Python2.7和Python3.4不要共存,共存的时候安装这几个库会出现莫名其妙地错误,怎么也对不了,推荐只是用Python2.7,。最后,附带一个来自MatPlotLib的画图代码:

from mpl_toolkits.mplot3d import axes3d
import matplotlib.pyplot as plt
from matplotlib import cm

fig = plt.figure()
ax = fig.gca(projection='3d')
X, Y, Z = axes3d.get_test_data(0.05)
ax.plot_surface(X, Y, Z, rstride=8, cstride=8, alpha=0.3)
cset = ax.contour(X, Y, Z, zdir='z', offset=-100, cmap=cm.coolwarm)
cset = ax.contour(X, Y, Z, zdir='x', offset=-40, cmap=cm.coolwarm)
cset = ax.contour(X, Y, Z, zdir='y', offset=40, cmap=cm.coolwarm)

ax.set_xlabel('X')
ax.set_xlim(-40, 40)
ax.set_ylabel('Y')
ax.set_ylim(-40, 40)
ax.set_zlabel('Z')
ax.set_zlim(-100, 100)

plt.show()

效果为:

详解Python中的Numpy、SciPy、MatPlotLib安装与配置

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中使用Boolean操作符做真值测试实例
Jan 30 Python
MySQL最常见的操作语句小结
May 07 Python
Pandas 数据处理,数据清洗详解
Jul 10 Python
pygame游戏之旅 添加键盘按键的方法
Nov 20 Python
python 搭建简单的http server,可直接post文件的实例
Jan 03 Python
解决PyCharm控制台输出乱码的问题
Jan 16 Python
两个元祖T1=('a', 'b'),T2=('c', 'd')使用匿名函数将其转变成[{'a': 'c'},{'b': 'd'}]的几种方法
Mar 05 Python
Python并发请求下限制QPS(每秒查询率)的实现代码
Jun 05 Python
Python 存取npy格式数据实例
Jul 01 Python
Python如何输出警告信息
Jul 30 Python
详解tf.device()指定tensorflow运行的GPU或CPU设备实现
Feb 20 Python
利用python做表格数据处理
Apr 13 Python
Python中super函数的用法
Nov 17 #Python
python使用正则表达式替换匹配成功的组
Nov 17 #Python
python定时利用QQ邮件发送天气预报的实例
Nov 17 #Python
详解python eval函数的妙用
Nov 16 #Python
Python算法之图的遍历
Nov 16 #Python
Python之Scrapy爬虫框架安装及使用详解
Nov 16 #Python
python字典操作实例详解
Nov 16 #Python
You might like
PHP 长文章分页函数 带使用方法,不会分割段落,翻页在底部
2009/10/22 PHP
9个PHP开发常用功能函数小结
2011/07/15 PHP
PHP结合jQuery.autocomplete插件实现输入自动完成提示的功能
2015/04/27 PHP
phpstudy后门rce批量利用脚本的实现
2019/12/12 PHP
JavaScript对象链式操作代码(jquery)
2010/07/04 Javascript
jQuery焦点图切换特效插件封装实例
2013/08/18 Javascript
瀑布流布局代码一例
2014/04/11 Javascript
Javascript进制转换实例分析
2015/05/14 Javascript
JavaScript File API实现文件上传预览
2016/02/02 Javascript
jQuery实现的小图列表,大图展示效果幻灯片示例
2016/10/25 Javascript
JavaScript实现图片懒加载(Lazyload)
2016/11/28 Javascript
jQuery插件zTree实现删除树子节点的方法示例
2017/03/08 Javascript
jQuery实现监听下拉框选中内容发生改变操作示例
2018/07/13 jQuery
解决vue router组件状态刷新消失的问题
2018/08/01 Javascript
关于AOP在JS中的实现与应用详解
2019/05/06 Javascript
JS实现打砖块游戏
2020/02/14 Javascript
es6函数name属性功能与用法实例分析
2020/04/18 Javascript
Python合并多个装饰器小技巧
2015/04/28 Python
Python 中的 else详解
2016/04/23 Python
Python正则表达式使用范例分享
2016/12/04 Python
机器学习python实战之决策树
2017/11/01 Python
解决python有时候import不了当前的包问题
2019/08/28 Python
Python imageio读取视频并进行编解码详解
2019/12/10 Python
django ajax发送post请求的两种方法
2020/01/05 Python
Pycharm pyuic5实现将ui文件转为py文件,让UI界面成功显示
2020/04/08 Python
使用Python将图片转正方形的两种方法实例代码详解
2020/04/29 Python
Python定义函数实现累计求和操作
2020/05/03 Python
使用Python中tkinter库简单gui界面制作及打包成exe的操作方法(二)
2020/10/12 Python
css3 flex布局 justify-content:space-between 最后一行左对齐
2020/01/02 HTML / CSS
html5使用canvas画空心圆与实心圆
2014/12/15 HTML / CSS
The Beach People美国:澳洲海滨奢华品牌
2018/07/05 全球购物
俄罗斯厨房产品购物网站:COOK HOUSE
2021/03/15 全球购物
机电专业个人自荐信格式模板
2013/09/23 职场文书
市场营销专业毕业生自荐信
2013/11/02 职场文书
Python基础之Socket通信原理
2021/04/22 Python
OpenCV-Python实现怀旧滤镜与连环画滤镜
2021/06/09 Python