Numpy
NumPy系統是Python的一種開源的數組計算擴展。這種工具可用來存儲和處理大型矩陣,比Python自身的嵌套列表(nested list structure)結構要高效的多(該結構也可以用來表示矩陣(matrix))。
Numpy常用操作
創建數組
創建1維數組:
data = np.array([1,3,4,8])
查看數組維度
data.shape
查看數組類型
data.dtype
通過索引獲取或修改數組元素
data[1] 獲取元素 data[1] = 'a' 修改元素
創建二維數組
1.data = np.array([[1,2,3],[4,5,6]]) 兩個元素均為列表
2.data = np.arange(10) 與python的range一樣,range返回列表,arange返回array類型的一個數組
3.data2 = data.reshape(2,5) 返回一個2*5的數組,他不是拷貝數組是引用,只是返回數組的不同視圖,data改變data2也會改變
創建特殊數組
data = np.zeros((2,2)) 創建2*2全為0的2維數組 data = np.ones((2,3,3,)) 創建全為1的三維數組 data = np.eye(4) 創建4*4的對角數組,對角元素為1,其它都為0
數組轉換
data = np.arange(16).reshape(4,4) 將0-16的移位數組轉換為4*4的數組
數組索引
data = np.arrange(100,step=10) 先創建一個步長為10的數組
一維數組范圍訪問
data[2:5] 訪問第2-4之間的元素 data[:3] 訪問0-2之間的元素 data[5:] = -1 將5-最后一個元素統一賦值為-1
二維或高維數組
data = np.arrary(16).reshape(4,4)
訪問元素
data[1] 返回array第一行元素 data[1:3] 返回第一行到第三行元素 data[:,2:4] 返回所有行的第二到第四列元素 data[1:3,2:4] 返回第1到第二行且列數為2-4之間的元素 data[[1,3],[2,3]] 返回第一行第二列元素與第三行第三列元素(=data[1,2],data[3,3])
布爾索引
data>10 數組中每個元素與10比較返回布爾值組成的數組 idx = data>10 獲得布爾數組 data[idx] 獲取大於10的數組 data[data>10] 獲取data數組里面大於10的元素構成的新數組 data[data%2==0] 獲取data里面所有偶數元素構成的新數組
數學運算
x = np.arange(1,5).reshape(2,2) y = np.arange(5,9).reshape(2,2) z = x+y 或np.add(x,y) 數組中對應位置元素相加,減法同理 c = x*y 數組中對應位置元素相乘 h = x.dot(y) 矩陣內積 q = x/y 數組對應位置相除 n = np.sqrt(x) 平方根 x.T 轉置矩陣 np.linspace(1,10,num=200) 指定在數軸上起始位置與均分,num表示均分份數