numpy庫常用函式筆記
1. 矩陣和各種乘法問題
np.mat(a) 將a矩陣化 (或者np.matrix(a))
np.multiply() 陣列/矩陣對應位置相乘,輸出與相乘陣列/矩陣的大小一致
np.dot() 對於秩為1的陣列,執行對應位置相乘,然後再相加;對於秩不為1的二維陣列,執行矩陣乘法運算;
對於矩陣則直接進行矩陣乘積
星號(*)乘法運算 對陣列執行對應位置相乘,對矩陣執行矩陣乘法運算,矩陣和陣列相乘按矩陣乘法計算
@直接對陣列/矩陣進行矩陣乘積運算
np.mean() 求所有元素的平均值
np.sum()求所有元素的和
————————————————————————————————————————————————
np.argmax(a, axis=None, out=None)
返回沿軸最大值的索引值
#axis = 0 ,表示以行為基準,比較在相同列上的元素的大小返回下標,(每列找一個,有多少列找多少個)
#axis = 1, 表示以列為基準,比較在相同行上的元素的大小返回下標,(每行找一個,有多少行找多少個)
a : array_like
陣列
axis : int, 可選
預設情況下,索引的是平鋪的陣列,否則沿指定的軸。
out : array, 可選
如果提供,結果以合適的形狀和型別被插入到此陣列中。
————————————————————————————————————————————————
np.concatenate((a1, a2, ...), axis=0)
按軸axis連線array組成一個新的array
————————————————————————————————————————————————————————————
np.power(x,num)
計算x的num次冪
不可以計算整數的負整數次冪,當x為整數時,num需要寫為小數形式
————————————————————————————————————————————————————————————
np.random.choice(a, size=None, replace=True, p=None)
如果a是ndarray陣列,隨機樣本在該陣列獲取(取資料元素)
————————————————————————————————————————————————————
numpy.insert(arr,obj,value,axis=None)
同理,value為插入的數值
arr:為目標向量
obj:為目標位置
value:為想要插入的數值
axis:為插入的維度
————————————————————————————————————————————————————————————
numpy.meshgrid(x,y)——生成網格點座標矩陣(輸入的x,y,就是網格點的橫縱座標列向量(非矩陣)輸出的X,Y,就是座標 矩陣。)
(在輸入的x,y值把所有的線連起來就成了網狀格 ,輸出的X每列數各自相同,Y每行各自相同)
————————————————————————————————————————————————————————————
numpy.ravel() numpy.flatten()
兩者所要實現的功能是一致的(將多維陣列降位一維),兩者的區別在於返回拷貝(copy)還是返回檢視(view),numpy.flatten()返回一份拷貝,對拷貝所做的修改不會影響(reflects)原始矩陣,而numpy.ravel()返回的是檢視(view,也頗有幾分C/C++引用reference的意味),會影響(reflects)原始矩陣。
————————————————————————————————————————————————————————————
np.random.randint(low,high, size)
ow、high、size三個引數。預設high是None,如果只有low,那範圍就是[0,low)。如果有high,範圍就是[low,high)。size表示最後返回的資料的結構大小
————————————————————————————————————————————————————————————
np.unique()
對於一維列表或陣列A:
a, s,p = np.unique(A, return_index=True, return_inverse=True)
nique函式去除其中重複的元素,並按元素由大到小返回一個新的無元素重複的元組或者列表a
return_index=True表示返回新列表元素在舊列表中的位置,並以列表形式儲存在s中。
return_inverse=True 表示返回舊列表元素在新列表中的位置,並以列表形式儲存在p中
對於二維陣列(“darray數字型別”):
A = np.array(A) #列表型別需轉為陣列型別
a, s, p = np.unique(A.view(A.dtype.descr * A.shape[1]), return_index=True, return_inverse=True)
這裡面最小單位就是一個維(也就是一行)的資料,而不是一個單獨的資料了