Python矩陣求逆報錯之TypeError: No loop matching the specified signature and casting...

引言

先吐槽兩句,真的是Matlab纔不會報這種錯,今天計算逆矩陣報了個這麼個錯,一個簡單的2*2的可逆矩陣居然死活求不出來,好氣啊。

TypeError: No loop matching the specified signature and casting was found for ufunc inv

在這裏插入圖片描述

astype數據類型轉換

在網上查閱了一下資料,覺得可能是類型錯誤,但是很奇怪明明一開始都指明瞭是float怎麼還是沒有。debug的時候關顧看數值了,沒有注意到類型變化,後來輸出這個計算後的矩陣發現是Object類型,怪不得不能求逆。真實太氣人了!
在這裏插入圖片描述
這裏用dtype修改是不會真實改變數據的類型,需要通過astype方法來修改,如下。這樣你就能看到它的真實類型改過來了,我也順利求得了A的逆矩陣。

A = A.astype(np.float)
print(A.dtype)

如果有大佬知道爲什麼中途數據類型會變爲Object,麻煩告知一下,實屬感激。

【參考資料】:
[1] 羅兵の水庫.numpy數據類型dtype轉換.
[2] numpy中數據類型統一轉換成float,object

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章