本文連結:https://blog.csdn.net/splnn/article/details/111596363
NumPy是Python中科學計算的基礎包。它是一個Python庫,提供多維陣列物件,各種派生物件(如掩碼陣列和矩陣),以及用於陣列快速操作的各種API,有包括數學、邏輯、形狀操作、排序、選擇、輸入輸出、離散傅立葉變換、基本線性代數,基本統計運算和隨機模擬等等。
建立陣列:可以使用array函式從常規Python列表或元組中建立陣列。得到的陣列的型別是從Python列表中元素的型別推匯出來的。即陣列元素型別和Python列表或元組裡的元素型別相同 。(程式碼的執行結果將會寫在註釋中)
import numpy as np#將列表轉換為陣列array = np.array([[1,2,3], [4,5,6]])print(array)#[[1 2 3]# [4 5 6]]array = np.array(((1,2,3), (4,5,6)))print(array)#[[1 2 3]# [4 5 6]]
若陣列元素未知,但是陣列大小已知,NumPy提供了幾個函式來建立具有初始佔位符內容的陣列。
zeros():可以建立指定長度或者形狀的全0陣列ones():可以建立指定長度或者形狀的全1陣列empty():建立一個數組,其初始內容是隨機的,取決於記憶體的狀態import numpy as npzeroarray = np.zeros((2,3))print(zeroarray)#[[0. 0. 0.]# [0. 0. 0.]]onearray = np.ones((3,4))print(onearray)#[[1. 1. 1. 1.]# [1. 1. 1. 1.]# [1. 1. 1. 1.]]emptyarray = np.empty((3,4))print(emptyarray)# [[1. 1. 1. 1.]# [1. 1. 1. 1.]# [1. 1. 1. 1.]]
為了建立數字組成的陣列,NumPy提供了一個類似於range的函式,使用方法同類似於range函式
import numpy as nparray = np.arange( 10, 31,5 )print(array)#[10 15 20 25 30]
輸出陣列資訊:
import numpy as nparray = np.array([[1,2,3],[4,5,6],[7,8,9],[10,11,12]])print(array)# [[ 1 2 3]# [ 4 5 6]# [ 7 8 9]# [10 11 12]]#陣列維度print(array.ndim)#2#陣列形狀print(array.shape)#(4, 3)#陣列元素個數print(array.size)#12#陣列元素型別print(array.dtype)#int32
陣列的計算:
基礎運算:
import numpy as nparr1 = np.array([[1,2,3],[4,5,6]])arr2 = np.ones([2,3])print(arr1 + arr2)# [[2. 3. 4.]# [5. 6. 7.]]print(arr1 - arr2)# [[0. 1. 2.]# [3. 4. 5.]]print(arr1 * arr2)# [[1. 2. 3.]# [4. 5. 6.]]print(arr2 / arr1)# [[1. 0.5 0.33333333]# [0.25 0.2 0.16666667]]print(arr1 ** 2)# [[ 1 4 9]# [16 25 36]]
值得注意的是,這裡的運算是矩陣對應元素的運算,包括乘以及冪運算。因此如果兩個矩陣大小不一,會產生錯誤。
矩陣乘法
import numpy as nparr3 = np.array([[1,2,3],[4,5,6]])arr4 = np.ones([3,2],dtype=np.int64)print(np.dot(arr3,arr4))# [[ 6 6]# [15 15]]
矩陣的轉置和flatten(這個中文不太好描述…變平??)
import numpy as nparr3 = np.array([[1,2,3],[4,5,6]])arr3_tran = arr3.transpose()print(arr3)# [[1 2 3]# [4 5 6]]print(arr3_tran)# [[1 4]# [2 5]# [3 6]]print(arr3.flatten())# [1 2 3 4 5 6]
陣列的索引、切片、迭代
同python其他序列型別一樣
import numpy as nparr5 = np.arange(0,6).reshape([2,3])print(arr5)# [[0 1 2]# [3 4 5]]print(arr5[1])#[3 4 5]print(arr5[1][2])#5print(arr5[1,2])#5print(arr5[1,:])#[3 4 5]print(arr5[:,1])#[1 4]print(arr5[1,0:2])# [3 4]for i in arr5: print(i**2)#[0 1 4]#[ 9 16 25]
基礎操作大概這些,更多內容還是要去Numpy中文網:https://www.numpy.org.cn/
最新評論