python中如何用序列(list())轉化為矩陣(int())
阿新 • • 發佈:2019-01-08
今天練習寫python程式碼時,遇到一個有趣的寫法:
def relu_fun(x):
x[x<0]=0
return x
結合上下文發現x是矩陣,猜測函式功能是根據x的值若小於0,則對應位的x就置為0,否則直接返回原來x的值。
想驗證函式功能是否與自己的猜測相同,於是就自己去嘗試新增激勵。
x = [[-2, -1, 2], [1, 2 ,-1]]
print(relu_fun(x))
然後就報錯!!
TypeError: unorderable types: list() < int()
好吧,型別錯誤。
這個錯誤對應的程式碼是:x<0
也就是說X在這裡是list型別的。
去查閱資料後,發現自己錯認為x = [[-2, -1, 2], [1, 2 ,-1]] 就是矩陣型別,其實不是,這只是list型別。
繼續找矩陣型別,廢了一些時間卻沒有找到。
偶然在網頁中見到一個函式np.mat(),好奇之下去探究,發現這個函式就能將list轉化為矩陣。
於是修改激勵程式碼如下:
x = [[-2, -1, 2], [1, 2 ,-1]] # list型別
x = np.mat(x) # 將list型別的x轉化為矩陣x
print(relu_fun(x))
這次輸出就對了。
[[0 0 2]
[1 2 0]]