numpy學習總結

2022-07-13 16:48:09 字數 3600 閱讀 3033

匯入:import numpy as np

生成矩陣:array = np.array([[1,2,3],[4,5,6]])

矩陣維度:array.ndim

矩陣形狀:array.shape

矩陣大小:array.size

矩陣元素型別:array.dtype

a = np.array([1,2,3], dtype=np.int32)

dtype:指定資料型別

矩陣維度:建立時方括號的層數代表矩陣的維度

zero = np.zeros((2, 3))生成兩行三列全為0的矩陣

one = np.empty((2, 3))生成兩行三列全為1的矩陣

empty = np.empty((3, 2))生成三行兩列全為接近於0但不是0的矩陣

e = np.arange(10)此種用法與python中的range類似

h = np.arange(10).reshape(2, 4)重新定義矩陣的形狀

arr1:矩陣1

arr2:矩陣2

加法:arr1 + arr2按位相加

減法:arr1 - arr2按位相減

乘法:arr1 * arr2按位相乘

求冪:arr1 ** arr2按位操作

除法:arr1 / arr2按位相除

取餘:arr1 % arr2按位取餘

取整:arr1 // arr2按位取整

與數的操作:arr1 + 2矩陣中的每位都與2操作

比較操作:arr1 > 3判斷矩陣中那些元素大於3,返回乙個布林型的矩陣

arr1:矩陣1

arr2:矩陣2

矩陣乘法:np.dot(arr1, arr2)/arr1.dot(arr2)

轉置矩陣:arr1.t/np.transpose(arr1)

numpy中生成隨機數

arr1 = np.random.random((3, 2))生成三行兩列從0-1的隨機數

arr2 = np.random.normal(size=(3, 2))生成三行兩列符合標準正態分佈的隨機數

arr3 = np.random.randint((0, 10, size=(3, 2)))生成三行兩列0-10的隨機整數

單個矩陣求和:np.sum(arr1)

單個矩陣對列求和:np.sum(arr1, axis=0)

單個矩陣對行求和:np.sum(arr1, axis=1)

單個矩陣中求最大/最小值:np.max(arr1)/np.min(arr1)

求某個矩陣中最小值/最大值的索引:np.argmin(arr1)/np.argmax(arr1)

求矩陣的平均值:np.mean(arr1)/arr1.mean()

求矩陣中位數:np.median(arr1)

矩陣開方:np.sqrt(arr1)

矩陣排序:np.sort(arr1)對每行進行排序

np.clip(arr1, 2, 7):對於arr1中的元素小於2就變成2,大於7就變成7

a = np.arange(2, 14):與python索引類似,用法可參照python中list用法

多維矩陣:

a[i]:表示第i+1行

a[i][j]:表示第i+1行第j+1列

a[:,j]:表示第j+1列

迭代行

for i in a:

print(i)

迭代列

for i in a.t:

print(i)

迭代元素

for i in a.flat:

print(i)

垂直合併:np.vstack((arr1, arr2))

水平合併:np.hstack((arr1, arr2))

np.concatenate((arr1, arr2),axis=0):可自主指定合併方式,合併的array維度要相同,引數axis=0時縱向合併,引數axis=1時橫向合併。

一維array增加乙個維度:np.newaxis

例項:

arr1 = np.arange(1,4)

arr1_2 = arr1[:,np.newaxis]

arr1_2變成三行一列

arr1_3 = arr1[np.newaxis,:]

arr1_3變成一行三列

np.atleast_2d(arr)/np.atleast_3d(arr):判斷arr是否最少為二維/三維array,如果不是轉換成arr[np.newaxis,:]這種形式

np.split(arr, 2, axis=1):按列分割,分成兩份

np.split(arr, 3, axis=0):按行分割,分成三份

np.array_split(arr, 2, axis=1):按列分割,分成兩份,不等分割

np.array_split(arr, 3, axis=0):按行分割,分成三份,不等分割

np.vsplit(arr, 3):按行分割

np.hsplit(arr, 2):按列分割

淺拷貝:類似值引用,指向同一塊記憶體位址,只要乙個改變大家都會改變

深拷貝:arr.copy() 重新開闢一塊記憶體空間,幾者之間互不影響

NumPy學習總結(一)

這一章節我們將學習如何從數值範圍建立陣列。numpy 包中的使用 arange 函式建立數值範圍並返回 ndarray 物件,函式格式如下 numpy.arange start,stop,step,dtype 根據 start 與 stop 指定的範圍以及 step 設定的步長,生成乙個 ndarr...

numpy用法總結

python的乙個開源的數值計算擴充套件。這種工具可用來儲存和處理大型矩陣,比python自身的巢狀列表 nested list structure 結構要高效的多 該結構也可以用來表示矩陣 matrix 功能 返回數字或陣列的絕對值。若輸入為陣列,則將陣列各元素取絕對值,然後返回取絕對值後的陣列 ...

numpy方法總結

numpy是乙個用python實現的科學計算的擴充套件程式庫,包括 numpy陣列間的基本運算是一對一的,基本就是加減乘除。陣列運算要求兩個資料的形狀相同,當形狀不同的時候,就會自動觸發廣播機制。陣列廣播 當兩個形狀不一樣的陣列進行相加,自動觸發廣播機制。下邊看幾個廣播計算的示意圖 當某乙個陣列的維...