詳解Python中的Numpy、SciPy、MatPlotLib安裝與配置
用Python來編寫機(jī)器學(xué)習(xí)方面的代碼是相當(dāng)簡單的,因?yàn)镻ython下有很多關(guān)于機(jī)器學(xué)習(xí)的庫。其中下面三個(gè)庫numpy,scipy,matplotlib,scikit-learn是常用組合,分別是科學(xué)計(jì)算包,科學(xué)工具集,畫圖工具包,機(jī)器學(xué)習(xí)工具集。
numpy :主要用來做一些科學(xué)運(yùn)算,主要是矩陣的運(yùn)算。NumPy為Python帶來了真正的多維數(shù)組功能,并且提供了豐富的函數(shù)庫處理這些數(shù)組。它將常用的數(shù)學(xué)函數(shù)都進(jìn)行數(shù)組化,使得這些數(shù)學(xué)函數(shù)能夠直接對數(shù)組進(jìn)行操作,將本來需要在Python級別進(jìn)行的循環(huán),放到C語言的運(yùn)算中,明顯地提高了程序的運(yùn)算速度。
scipy:主要是一些科學(xué)工具集,信號處理工具集(如線性代數(shù)使用LAPACK庫,快速傅立葉變換使用FFTPACK庫)及數(shù)值計(jì)算的一些工具(常微分方程求解使用ODEPACK庫,非線性方程組求解以及最小值求解等)。
scikit-learn:里面有很多機(jī)器學(xué)習(xí)相關(guān)的算法(如聚類算法,SVM等)。
Python安裝完Numpy,SciPy和MatplotLib后,可以成為非常犀利的科研利器。網(wǎng)上關(guān)于這三個(gè)庫的安裝都寫得非常不錯(cuò),但是大部分人遇到的問題并不是如何安裝,而是安裝好后因?yàn)榕渲貌划?dāng),在使用時(shí)總會(huì)出現(xiàn)import xxx error之類的錯(cuò)誤。我也是自己摸索了很久才發(fā)現(xiàn)如何去正確配置的。下面就詳細(xì)說下安裝和配置的過程。
1.安裝Python,這里選擇2.7還是3.4都行,不過推薦使用2.7,畢竟現(xiàn)在的教程大部分還是基于2.7的,3.4跟2.7的語法還是略有不同,為了避免語法錯(cuò)誤的麻煩,還是推薦大家使用2.7。下載地址為:https://www.python.org/downloads/
2.下載Numpy,SciPy,MatplotLib這三個(gè)庫的exe,注意,這里用的是exe,因?yàn)镸atplotLib的使用需要以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位的區(qū)別,MatPlotLib需要根據(jù)自己的系統(tǒng)選擇32位和64位的。再次提醒,這三個(gè)庫一定都要下載對應(yīng)版本的exe。下載完成后一次安裝就是了,他們會(huì)自動(dòng)找到你之前安裝好的Python所在的路徑的,一路Next到底就行了。
3.在第2步安裝完成后,可以在MatPlotLib的Examples頁面(http://matplotlib.org/examples/index.html)Copy代碼運(yùn)行,發(fā)現(xiàn)一定會(huì)出錯(cuò)。這里出的錯(cuò),大體有三個(gè):
- ImportError: matplotlib requires dateutil
- ImportError: matplotlib requires pyparsing
- No module name six
4.解決No module name six問題,解決辦法很簡單。把你的安裝路徑:Python27/Lib/site-packages/scipy/lib中的six.py,six.pyc,six.pyo三個(gè)文件拷貝到 你的安裝路徑:Python27/Lib/site-packages,這個(gè)問題就解決了。如何還不行,請記住這個(gè)地址(非常重要):http://www.lfd.uci.edu/~gohlke/pythonlibs/
然后下載這個(gè)文件:six‑1.9.0‑py2.py3‑none‑any.whl,下載后,利用CMD進(jìn)入到該文件所在的目錄(DOS命令為:cd /d XX:/XXX/six‑1.9.0‑py2.py3‑none‑any.whl 把你自己的six文件的所在路徑按格式粘貼進(jìn)DOS然后回車就行了),然后輸入命令:pip install six-1.9.0-py2.py3-none-any.whl,等DOS命令跑完,six不存在的問題就解決了。操作圖如下:
5.解決ImportError: matplotlib requires dateutil問題,方法和第4步一樣,下載python_dateutil‑2.4.2‑py2.py3‑none‑any.whl,然后pip install就可以解決該問題了。操作如下:
6.解決ImportError: matplotlib requires pyparsing問題,還如同之前一樣,下載pyparsing‑2.0.3‑py2‑none‑any.whl(選擇對應(yīng)的版本,這里有2和3的區(qū)別)然后利用pip install安裝好就可以了。操作如下:
到此,所有的配置就完成了,可以愉快地使用MatPlotLib進(jìn)行科學(xué)畫圖和計(jì)算了。另外提醒一句,Python2.7和Python3.4不要共存,共存的時(shí)候安裝這幾個(gè)庫會(huì)出現(xiàn)莫名其妙地錯(cuò)誤,怎么也對不了,推薦只是用Python2.7,。最后,附帶一個(gè)來自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()
效果為:
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Python創(chuàng)建7種不同的文件格式的方法總結(jié)
今天的這篇文章呢,小編來介紹一下如何通過Python來創(chuàng)建各種形式的文件,這里包括了:文本文件、CSV文件、Excel文件、壓縮文件、XML文件、JSON文件和PDF文件,需要的可以參考一下2023-01-01python中tkinter的應(yīng)用:修改字體的實(shí)例講解
今天小編就為大家分享一篇python中tkinter的應(yīng)用:修改字體的實(shí)例講解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-07-07Python實(shí)現(xiàn)的簡單計(jì)算器功能詳解
這篇文章主要介紹了Python實(shí)現(xiàn)的簡單計(jì)算器功能,結(jié)合實(shí)例形式詳細(xì)分析了Python實(shí)現(xiàn)計(jì)算器功能的具體步驟、相關(guān)操作技巧與注意事項(xiàng),需要的朋友可以參考下2018-08-08python 求1-100之間的奇數(shù)或者偶數(shù)之和的實(shí)例
今天小編就為大家分享一篇python 求1-100之間的奇數(shù)或者偶數(shù)之和的實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-06-06python實(shí)現(xiàn)凱撒密碼、凱撒加解密算法
這篇文章主要介紹了python語言編程實(shí)現(xiàn)凱撒密碼、凱撒加解密算法,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-06-06