机器学习实战之环境配置:windows系统下安装NumPy、SciPy和Matplotlib函数库

在科学和金融领域,SciPy和NumPy等科学函数库都实现了向量和矩阵操作,增加了代码的可读性,降低了阅读门槛;同时这两个库使用底层语言(C和Fortran)编写,提高了相关应用程序的计算性能,被广泛的应用。此外还有绘图工具Matplotlib,可以绘制2D/3D图形,也可以处理科学研究中经常使用到的图形。

 

三个库各自的下载地址↓

http://sourceforge.net/projects/numpy/files/NumPy

http://sourceforge.net/projects/scipy/files/Scipy

https://sourceforge.net/projects/matplotlib/files/matplotlib

文件夹都可以点进去,找到和你Python版本相应对的exe文件左键单击下载并安装即可。安装完成后,可以选择import一下检查是否安装成功。

 

matplotlib 需要依赖许多其他科学计算的第三方库,所以安装起来非常麻烦。

安装matplotlib中可能出现的问题及解决方法(注意也需要提前安装NumPy,博主已经提前安过了):

如果碰到ImportError: No module named six

  安装  scipy,然后把C:\Python27\Lib\site-packages\scipy\lib中的six.py six.pyc six.pyo三个文件拷贝到C:\Python27\Lib\site-packages目录下。

  上一个方法可能因为six版本过低出现问题。于是我们需要安装 six

  有两种安装方法,一种是下载.whl然后用pip快速安装,还有一种是下载压缩包,解压之后进入文件夹执行python setup.py install安装

  博主用的第二种方法…当然运行setup.py之前我们需要先安装setuptools。在这个网站上 : https://pypi.python.org/pypi/setuptools/0.9.8

  查找windows,点击 ez_setup.py进入, 并将内容复制下来, 保存为本地的python脚本, 如: easy_install.py

  运行... 自动下载安装包, 直到安装成功..

再次import 发现ImportError: matplotlib requires dateutil

  dateutil官网下载:https://pypi.python.org/pypi/python-dateutil/1.4.1

  到解压目录下,执行 python  setup.py install 安装成功

好了,现在摆在我们面前的拦路虎是ImportError:matplotlib requires pyparsing

  这个直接下.exe文件就可以了。下载地址https://sourceforge.net/projects/pyparsing/files/pyparsing

 

终于看到了import matplotlib没有报错……

跑个程序测试一下吧!源代码来自http://my.oschina.net/bery/blog/203595

import numpy as np
import matplotlib.pyplot as plt

N = 5
menMeans = (20, 35, 30, 35, 27)
menStd =   (2, 3, 4, 1, 2)

ind = np.arange(N)  # the x locations for the groups
width = 0.35       # the width of the bars

fig, ax = plt.subplots()
rects1 = ax.bar(ind, menMeans, width, color='r', yerr=menStd)

womenMeans = (25, 32, 34, 20, 25)
womenStd =   (3, 5, 2, 3, 3)
rects2 = ax.bar(ind+width, womenMeans, width, color='y', yerr=womenStd)

# add some
ax.set_ylabel('Scores')
ax.set_title('Scores by group and gender')
ax.set_xticks(ind+width)
ax.set_xticklabels( ('G1', 'G2', 'G3', 'G4', 'G5') )

ax.legend( (rects1[0], rects2[0]), ('Men', 'Women') )

def autolabel(rects):
    # attach some text labels
    for rect in rects:
        height = rect.get_height()
        ax.text(rect.get_x()+rect.get_width()/2., 1.05*height, '%d'%int(height),
                ha='center', va='bottom')

autolabel(rects1)
autolabel(rects2)

plt.show()

 运行结果出来是这个样子的。是不是萌萌哒!

posted on 2016-04-12 21:46  HoneyCat  阅读(1596)  评论(0编辑  收藏  举报

导航