NumPy函數庫作爲python第三方庫中非常強大的開源庫,是對數值計算的擴展,主要用來存儲和處理大型矩陣。有人甚至說,NumPy庫使得python可作爲一個免費且更加強大的Matlab系統。NumPy庫在數據科學,機器學習等各方面的重要性可見一斑。下面是NumPy函數庫的一些基礎知識,分爲Numpy函數庫的安裝及其簡單使用兩部分。
1.安裝NumPy函數庫
想必大家都已經安裝了Python運行環境,那麼只需要以管理員權限運行cmd,然後使用pip命令獲取NumPy。現在安裝Python環境後,都可以直接使用pip命令。只需要鍵入下面一行命令即可。
pip install numpy #嗯,就是這麼簡單:)
我們以random.rand()函數爲起始點,介紹NumPy庫的使用。
首先,打開Python的shell窗口,進行我們NumPy庫的初次使用
>>>from numpy import * #引入numpy中的所有模塊
>>>randArr = random.rand(3,2) #生成3X2的隨機數組
>>>randArr
array([[ 0.46235306, 0.1384437 ],
[ 0.01735966, 0.25606631],
[ 0.05099193, 0.15190798]])
>>>type(randArr)
<class 'numpy.ndarray'> #注意randArr的類型
>>>randArr[2][0] #對該數組某元素的索引(Method 1)
0.050991928369956252
>>> randArr[2,0] #對該數組某元素的索引(Methon 2)
0.050991928369956252
>>> randArr[1] #對該數組某行的索引
array([ 0.01735966, 0.25606631])
怎麼樣,是不是非常簡單啊?
咦,不是說NumPy是處理矩陣的嗎,矩陣呢?別急,下面就是我們的矩陣了。
在shell窗口中,繼續進行我們的實驗。
>>> randMat = mat(randArr) #利用前面生成的隨機數組,使用mat()函數來產生我們的矩陣
>>> randMat
matrix([[ 0.46235306, 0.1384437 ],
[ 0.01735966, 0.25606631],
[ 0.05099193, 0.15190798]])
>>> type(randMat) #randMat的類型果然是matrix吧:)
<class 'numpy.matrixlib.defmatrix.matrix'>
>>> randMat[2] #對該矩陣某行的索引
matrix([[ 0.05099193, 0.15190798]])
>>> randMat[2,0] #對該矩陣某元素的索引(注意不要寫成randMat[2][0])
0.050991928369956252
>>> invRandMat = randMat.I #class'numpy.matrixlib.defmatrix.matrix'的.I屬性是原矩陣的逆矩陣
>>> invRandMat
matrix([[ 2.23877113, -1.00499117, -0.34625819],
[-0.29823297, 3.08542477, 1.6537323 ]])
>>> matrix = invRandMat * randMat #矩陣的乘法,因爲計算誤差,所以不是正好的單位陣
>>> matrix
matrix([[ 1.00000000e+00, 9.02056208e-17],
[ 9.71445147e-17, 1.00000000e+00]])