想不用第三方庫實現點深度學習的基礎部分,發現numpy真的好難(笑),在此做點遇到的函式的筆記
慣例官方文件:但真的屬實弟弟排版。
以下都以import numpy as np為前提。
1. np.zip()作用
該函式以多個可迭代的型別資料為輸入,如字典、列表和元組,從這些迭代型別中各取其乙個值,組成新的乙個迭代型別。如輸入兩個1x2矩陣(a,b)和(c,d),則會從兩個矩陣中分別同時抽出第乙個和第二個組合成乙個新的矩陣[(a,c),(b,d)]。但python3中返回的是zip型別,可用list()將之轉換為列表。
這個函式雖然看起來非常雞肋,但是其實異常好用!
在深度學習中需要頻繁地計算帶偏置值的輸入加權和並將其作為啟用函式的輸入,即σ(w*a+b),此時可以將偏置矩陣和權值矩陣用zip組合起來,**形式就會如下簡便很多!
假設已有偏執矩陣biases和權值矩陣weights並使用sigmoid作為啟用函式,單層神經元的前向傳播可寫為:
for b,w in zip(weights.biases):
output=sigmoid(np.dot(w,output)+b)
2.numpy庫的各種矩陣乘法
np.dot(a,b) - 同線性代數中的矩陣乘法(當所給ab均為向量時,按矩陣乘法來看該式就自動退化為兩向量內積)
np.multiply(a,b) - 同結構矩陣元素對應相乘,非常常用且實用
單獨的乙個星號『 * 』,如a*b - 若所給ab為np.array型別,該式會給出同np.multiply的元素對應相乘型別;若所給ab為np.matrix型別,該式會給出同np.dot的矩陣相乘結果。其實就是萬惡的過載差別。可能因為multiply這詞要打的字實在是太多了吧。
2.np.reshape(-1,1)中的-1值
當不知道有多少或者懶得計算的時候,使用-1替代行值或列值,reshape會自動計算並正確轉換。
(持續更新吧)
python的numpy庫結構 Numpy庫簡介
今天給大家分享乙個資料分析處理資料的常見的庫 numpy。這個庫是 python 資料分析的基礎,它提供的資料結構比 python 自身的更高效。我們知道 python 有自帶的列表資料結構。numpy 庫和 list 列表有什麼區別呢?python list 列表儲存的是物件的指標,比如 0,1,...
Python的numpy庫中的shape用法
shape函式是numpy.core.fromnumeric中的函式,它的功能是讀取矩陣的維度。例 shape matrixa 返回matrixa的 行數,列數 元組 shape matrixa 0 行數 shape matrixa 1 列數 shape的輸入引數可以使乙個實數,乙個一維列表 陣列 ...
Python中numpy庫unique函式解析
a np.unique a 對於一維陣列或者列表,unique函式去除其中重複的元素,並按元素由大到小返回乙個新的無元素重複的元組或者列表。import numpy as np a 1,2,2,5,3,4,3 a np.unique a b 1,2,2,5,3,4,3 b np.unique b c...