我几乎花了一整天的时间来搞numpy,matplotlib和scikit-learn这三个用于机器学习的库的配置,期间遇到了无数的问题(不是我笨,是电脑实在不给力啊!!!!)。现在我从安装python3.4开始说明我在这期间遇到的种种问题以及相对应的解决方式。
第一步:下载python3.4
可能有人会说,朴有天python3.5都出来了,为什么还用3.4呢?这是因为有些库很傲娇,现阶段并不支持朴有天python3.5……可悲的是,我们要安装的这几个库都只是最高支持到3.4而已。
登陆https://www.python.org/downloads/ 下载python3.4,然后按照提示安装。这里要说一下,如果之前电脑里面有别的版本的python的话,最好能够保证两个版本不会互相影响。这里说的互相影响是我们下面要聊到的在cmd窗口输入python和pip指令时的互相干扰,具体情况下面讲。如果没法保证的话,就像我一样卸载掉之前的版本吧。
第二步:设置环境变量
大概就像这样把两个地址:C:\Python34和C:\Python34\Scipts加到末尾。如果不加的话,当你在cmd窗口调用python或者pip时就会出现如下情况:
第三步:下载各种库
1. numpy库
这个库类似与一个计算器,可以计算诸如cos(),sin()等等的数据。
http://sourceforge.net/projects/numpy/files/NumPy/1.10.0/在这里按照个人情况选择下载。
2. matplotlib库
这个库是用来画各种各样漂亮的图像的。
https://pypi.python.org/pypi/matplotlib/1.4.3在这里说明一下,下载时尽量下载后缀是exe的文件,例如这种:
你会发现,下载了.exe文件之后,会省很多很多事……我这是实践出真知。
3. scikit-learn库
这个库就相当牛逼了,它是一个集成了相当多机器学习算法,可以为我们省去很多麻烦。另外该项目文档齐全、讲解清晰,功能齐备,使用方便,而且社区活跃,强烈推荐。
https://pypi.python.org/pypi/scikit-learn/0.16.1#downloads和上面一样,优先推荐.exe文件下载。
第四步:安装库
1. 先从自始至终都没有给我到过乱的numpy库开始。
运行exe文件之后,按照说明一步步往下操作。安装完毕后,进入python自带的GUI IDLE中输入:import numpy 如果没报错,就恭喜你像我一样幸运啦~~一般这一步是不会出问题的。
2. 下面是最麻烦的matplotlib库
同样是运行exe文件,然后一步一步进行操作。安装好之后,在IDLE中输入:
Import matplotlib
然后肯定就会报错,例如:
ImportError: matplotlib requires six
这是缺少six库,没关系,我们下载就好:
https://pypi.python.org/pypi/six/1.10.0注意了,为了简便,我们在这里选择是压缩包的那个选项,也就是:
然后我们对其进行解压,将最后解压得到的文件夹改名为“six”,将其置入C:\Python34\Lib\中。之后再尝试运行:import six,观察有无报错。一般情况下是没有错误的。
解决了six,我们继续运行:import matplotlib 然后又会报错:
ImportError: matplotlib requires dateutil
这是缺少dateutil库。我们下载就好:
https://pypi.python.org/pypi/python-dateutil/2.4.2这里我们下载后缀为whl的那个文件,因为亲测这个文件比压缩包好用,报错少……
然后我们安装这个文件。由于这个文件很特殊,我们要进入到cmd界面进行操作。步骤如下图所示(文件我放桌面上了,听说在桌面上操作错误少,我也不是很确定……):
如果你操作之后和我一样,那么恭喜你这里也成功了。
解决了dateutil,我们继续运行:import matplotlib 然后又会报错:
ImportError: matplotlib requires pyparsing
这是缺少pyparsing库,我们下载就好了:
https://pypi.python.org/pypi/pyparsing/2.0.3#downloads这里我们下载.exe文件,简单快捷。
解决了pyparsing,我们继续运行:import matplotlib ,这时一般不会报错了。如果有报错,看报错字样中出现“__version__ = "1.3.0" ”这种的,解决办法如下:
将six文件夹中的six.py以及pyc文件复制一份放入:C:\Python34\Lib\site-packages
其中,pyc文件在C:\Python34\Lib\six\__pycache__这里面。这样做了之后,问题就可以解决了。我也不知道为啥这么神奇…
第五步:安装scikit-learn
安装scikit-learn是有前提的。我们必须先安装scipy库。
https://pypi.python.org/pypi/pyparsing/2.0.3#downloads在这里下载.exe文件。然后和上面进行同样的操作。应该就OK了。
下面说一说我为什么会耽误一天这么长时间,因为原来我电脑里面有python3.5,我忘记了它的存在…所以后面就很混乱,卸载了3.5之后一切似乎都很顺利了。
下面附上两个example,分别用来测试matplotlib和sklearn这两个库。
import numpy as np import matplotlib.pyplot as plt import matplotlib.animation as animation def update_line(num, data, line): line.set_data(data[...,:num]) return line, fig1 = plt.figure() data = np.random.rand(2, 25) l, = plt.plot([], [], 'r-') plt.xlim(0, 1) plt.ylim(0, 1) plt.xlabel('x') plt.title('test') line_ani = animation.FuncAnimation(fig1, update_line, 25, fargs=(data, l), interval=50, blit=True) #line_ani.save('lines.mp4') fig2 = plt.figure() x = np.arange(-9, 10) y = np.arange(-9, 10).reshape(-1, 1) base = np.hypot(x, y) ims = [] for add in np.arange(15): ims.append((plt.pcolor(x, y, base + add, norm=plt.Normalize(0, 30)),)) im_ani = animation.ArtistAnimation(fig2, ims, interval=50, repeat_delay=3000, blit=True) #im_ani.save('im.mp4', metadata={'artist':'Guido'}) plt.show()
""" ==================================== Plotting Cross-Validated Predictions ==================================== This example shows how to use `cross_val_predict` to visualize prediction errors. """ from sklearn import datasets from sklearn.cross_validation import cross_val_predict from sklearn import linear_model import matplotlib.pyplot as plt lr = linear_model.LinearRegression() boston = datasets.load_boston() y = boston.target # cross_val_predict returns an array of the same size as `y` where each entry # is a prediction obtained by cross validated: predicted = cross_val_predict(lr, boston.data, y, cv=10) fig,ax = plt.subplots() ax.scatter(y, predicted) ax.plot([y.min(), y.max()], [y.min(), y.max()], 'k--', lw=4) ax.set_xlabel('Measured') ax.set_ylabel('Predicted') fig.show()