numpy庫學習筆記

2021-10-19 09:17:10 字數 2740 閱讀 6130

import numpy as np

""" np.array(,dtype = ):

---- 在小括號中新增所要構建的陣列:

---- 每多新增一層中括號''陣列的維數上公升一維

---- dtype為陣列中資料的型別

np.arange(num) == np.array(range(num)):

獲得num範圍內的數並將其構造出一維的ndarray陣列

np.round(ndarray,n):

對陣列中的所有元素取n位小數並返回該陣列

np.where(condition(ex:a > num) , val1,val2):

更新陣列中的值,將陣列中滿足condition中的值更新為val1,將不滿足的元素更新為val2

np.nan:

屬性操作,返回nan

np.vstack(obj1,obj2):

將obj1和obj2進行豎直拼接

np.hstack(obj1,obj2):

將obj1和obj2進行水平拼接

np.argmax(obj.axis = 0/1):

獲取按行或按列的陣列最大值

np.argmin(obj.axis = 0/1):

獲取按行或按列的陣列最小值

np.zeros(num):

獲取num階的全零矩陣

np.ones(n):

獲取n階全1矩陣

np.eye(n):

獲取n階單位矩陣(對角線位置為1其餘位置為0)

np.random.rand(n):

建立n維隨機數陣列,元素範圍為0~1

np.random.randn(n):

建立n維的正態分佈陣列

np.random.randint(min,max,(shape)):

建立範圍為min~max的隨機數組,形狀為shape型

np.random.random.seed(s):

設定隨機數種子,種子相同,獲得的隨機數相同

np.median(axis):

求陣列的中值

object.std(axis = 0/1):

求出陣列的各個維度的標準差

object.sum(axis = 0/1):

將obj按行或列進行求和

object.mean(axis = 0/1):

對obj進行按行或按列求平均

object.max(axis = 0/1):

求出陣列的最大值

object.t:

屬性操作,進行obj的轉置

object.i:

屬性操作,對obj求逆矩陣

object.reshape(n,m):

將object重構成n行m列的陣列

object.flatten():

將object陣列進行展開,壓縮成一維陣列即shape = (n,)形式,即乙個中括號形式

object(class ndarray) +-*/ 實數/陣列:

①對object陣列中的所有元素進行相應的運算

②兩個object的陣列的對應位置進行相應的計算

③若兩個陣列形狀不同,則其在相同的維度上進行計算,若沒有任一相同的維度,則無法進行計算:

ex:a = np.arange(6).reshape(2,3)

b = np.array([1,2,3])

c = a - b

則c的結果為a陣列的每一行減去b陣列

object.astype(type(int,float...)):

將object陣列中的元素轉換為指定型別的元素

object.clip(a,b):

將object中小於a的值更新為a,將大於b的值更新為b

ndarray切片操作:

1.獲取連續多行:object[n:m,:]

2.獲取不連續多行:object[[a,b,c,d],:]

3.獲取連續多列:object[:,n:m]

4.獲取不連續多列:object[:,[a,b,c,d]]

5.獲取指定位置元素: object[n,m] ----獲取第n + 1行第m + 1列元素

6.取多個元素: object[[x1,y1] , [x2,y2] , [x3,y3]]--->使用中括號進行取行取列時,只取中括號內部的乙個值

7.行交換/列交換:obj[[a,b],:] = obj[[b,a],:]--->a,b行進行交換,列交換同理

tips:

切片和a = b等都是淺拷貝,均屬於記憶體共享機制

a = b.copy()此外深拷貝,使得a和b互補影響

布林索引:

object[object > num]:返回object中滿足中括號條件的值,即返回使得中括號中條件為真的值

random庫:

random.random():獲取0~1的隨機數

round(num,n):對num保留小數點後n位有效陣列

nan操作:

出現原因:

①資料缺失

②出現不恰當的計算時

特性:①兩個nan不相等

②因為nan != nan所以利用該特點計算nan的個數:

ex:np.count_nonzero(obj != obj)/np.count_nonzero(!np.isnan(obj))

np.isnan(obj):將obj含有nan的項更新為true

③nan和任何值計算都為nan

"""

NumPy學習筆記(1) NumPy庫簡介

這兩年python特別火,在一些it 上轉一圈各處都能看到關於python的技術類文章,引用官方的說法 python就是 一種解釋型的 物件導向的 帶有動態語義的高階程式語言 等方面。我是因為搞深度學習開始接觸python的,之前學的c 在遇見python後簡直開啟了新世界的大門,碼 的幸福感簡直爆...

Numpy學習筆記

測試檔案裡的資料排列型別最好是有規律的,不可以隨便,否則將發生一些錯誤 genfromtxt函式 genfromtxt函式建立陣列 資料 genfromtxt主要執行兩個迴圈運算。第乙個迴圈將檔案的每一行轉換成字串序列。第二個迴圈將每個字串序列轉換為相應的資料型別。genfromtxt能夠考慮缺失的...

numpy學習筆記

1 array.ndim 用來輸出陣列的維度 2 array.shape 用來輸出陣列的形狀 3 arry.size 用來輸出陣列的大小見jupyter notebook的numpy function list 生成函式基本運算 直接用陣列的相加減乘除。也就是相對應的元素間的作用。關係運算 陣列元素...