Numpy是一個Python語言下的矩陣運算的包,因爲機器學習中會涉及一些非常複雜的矩陣運算,使用基本的pyhon中的數據結構操作起來很麻煩,於是就誕生了很多矩陣運算的專用包,Numpy是其中使用最多的一個,舉個例子,opencv的python版本中就是用了Numpy矩陣來表示圖片:
我們來看一下打印結果:
本文目的是介紹Numpy最常見的一些用法,我會嘗試使用最簡短的代碼解釋清楚Numpy的用法,下面的每一段代碼都可以獨立運行。
1 Numpy創建數組
1.1 創建一個一維數組
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
數組中的元素必須是同一個類型,如果是不同的類型,會發生自動的類型轉換,如下:
import numpy as np
arr = np.array(["char", True, 3, 4, 5])
print(arr)
打印的結果如下:
顯然所有的元素都被轉換成了字符串類型。
1.2 創建多維數組
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6]])
1.3 創建指定長度的數組
第一種方式是未初始化的數組,數組元素的值是隨機的,下面的代碼創建了一個6行2列的int類型的數組
import numpy as np
arr = np.empty([6,2], dtype = int)
第二種方式是已經初始化的數組,比如全0的數組或者全1的數組
import numpy as np
arr = np.zeros([4, 2])
2 Numpy中數組的讀寫
2.1 修改數組中的元素
import numpy as np
arr = np.zeros([4, 2])
arr[0][1] = 1
2.2 讀取數組中的元素
import numpy as np
arr = np.zeros([4, 2])
arr[0][1] = 1
print(arr[0][1])
2.3 尾部添加元素
import numpy as np
arr = np.zeros([6])
np.append(arr, 7)
print(arr)
arr = np.append(arr, 7)
print(arr)
這段代碼的輸出如下:
需要注意的兩點是:
append方法的調用者是numpy本身
append不改變參數中的數組,需要將結果返回給原來的數組
3 數組整體操作
3.1 兩個數組相加
import numpy as np
arr1 = np.array([1.5,2.5,3.5])
arr2 = np.array([2.5,3.5,4.5])
arr = arr1 + arr2
print(arr)
輸出如下:
3.2 數組和常數相加
import numpy as np
arr1 = np.array([1.5,2.5,3.5])
arr = arr1 + 0.5
print(arr)
輸出如下:
其它的如乘法、除法、乘方的原理相同,都是對數組裏面的每一個元素單獨做對應的操作
4 取出數組的指定行或者指定的列
4.1 取出一維數組中的奇數號元素
import numpy as np
arr = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8])
index = range(0, 9, 2)
arrSig = arr[index]
print(arrSig)
4.2 取出二維數組中前三行
import numpy as np
arr = np.array([[0, 1, 2], [3, 4, 5], [6, 7, 8], [9, 10, 11]])
print(arr[0:2, :])
輸出如下:
4.2 取出二維數組中前兩列
import numpy as np
arr = np.array([[0, 1, 2], [3, 4, 5], [6, 7, 8], [9, 10, 11]])
print(arr[:, 0:2])
輸出如下:
4.3 取出二維數組中的前兩行,再從這前兩行中取出前兩列
import numpy as np
arr = np.array([[0, 1, 2], [3, 4, 5], [6, 7, 8], [9, 10, 11]])
print(arr[0:2, 0:2])
輸出如下:
先寫這麼多,有空再添加