《深度學習與圖像識別:原理與實踐》—2.3 Numpy使用詳解
2.3 Numpy使用詳解
Numpy(Numerical Python的簡稱)是高性能科學計算和數據分析的基礎包,其提供了矩陣運算的功能。Numpy提供的主要功能具體如下。
ndarray—一個具有向量算術運算和復雜廣播能力的多維數組對象。
用于對數組數據進行快速運算的標準數學函數。
用于讀寫磁盤數據的工具以及用于操作內存映射文件的工具。
非常有用的線性代數,傅里葉變換和隨機數操作。
用于集成C /C++和Fortran代碼的工具。
除了明顯的科學計算用途之外,Numpy還可以用作通用數據的高效多維容器,定義任意的數據類型。這些都使得Numpy能夠無縫、快速地與各種數據庫集成。
這里提到的“廣播”可以這么理解:當兩個維度不同的數組(array)運算的時候,可以將低維的數組復制成高維數組參與運算(因為Numpy運算的時候需要結構相同)。
在學習圖像識別的過程中,需要將圖片轉換為矩陣。即將對圖片的處理簡化為向量空間中的向量運算。基于向量運算,我們就可以實現圖像的識別。
2.3.1 創建數組
現在就來關注下Numpy中的一些核心知識點。在Numpy中,最核心的數據結構是ndarray, ndarray代表的是多維數組,數組指的是數據的集合。為了方便理解,我們下面列舉一個小例子。
一個班級里學生的學號可以通過一維數組來表示,數組名為a,數組a中存儲的是數值類型的數據,分別是1,2,3,4。
其中,a[0]代表的是第一個學生的學號1,a[1]代表的是第二個學生的學號2,以此類推。
一個班級里學生的學號和姓名,可以用二維數組來表示,數組名為b。
類似的,其中b[0,0]代表的就是1(學號),b[0,1]代表的就是Tim(學號為1的學生的名字),以此類推b[1,0]代表的是2(學號)等。
借用線性代數的說法,一維數組通常稱為向量(vector),二維數組通常稱為矩陣(matrix)。
當我們安裝完Anaconda之后,默認情況下Numpy已經在庫中了,所以不需要額外安裝。下面我們來寫一些語句簡單測試下Numpy庫。
1)在Anaconda的Notebook里輸入import numpy as np之后,通過鍵盤按住Shift+Enter執行,如果沒有報錯,則說明Numpy已被正常引入,如圖2-7所示。
圖2-7 在Notebook中引入Numpy
稍微解釋下這條語句:通過import關鍵字將Numpy庫引入,然后通過as為其取一個別名np,別名的作用是為了便于后續引用。
2)Numpy中的array()可以直接導入向量,代碼如下:
vector = np.array([1,2,3,4])
3)numpy.array()方法也可以導入矩陣,代碼如下:
matrix = np.array([[1,'Tim'],[2,'Joey'],[3,'Johnny'],[4,'Frank']])
輪到你來:
首先定義一個向量,然后分配一個變量名vector;定義一個矩陣,然后分配給變量matrix;最后通過Python中的print方法在Notebook中打印出結果。
Numpy 圖像處理 深度學習
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。