![](/img/trans.png)
[英]TypeError: can't multiply sequence by non-int of type 'numpy.float64' - multiply column by value
[英]TypeError: can't multiply sequence by non-int of type 'float' when using numpy.linalg.slogdet()
我正在嘗試計算val
但出現類型錯誤。
這是計算中使用的一小部分矩陣,以顯示它包含的數據類型,原始矩陣為 30x30。
covM = [[ 9.81431930e-02, -6.94931008e-03, -1.28573646e-02],
[-6.94931008e-03, 5.28292692e-02, 6.23429384e-03],
[-7.04098766e-03, 2.64439715e-04, -8.66008123e-04]]
為了找到val
我計算:
val = math.sqrt((2*pi)**30*np.linalg.slogdet(covM))
但是得到這個:
TypeError: can't multiply sequence by non-int of type 'float'
當我嘗試使用普通行列式而不是日志時,它工作正常:
val = math.sqrt((2*pi)**30*np.linalg.det(covM))
為什么 slogdet() 而不是 det() 會發生此錯誤,我怎樣才能使它適用於日志行列式?
由於np.linalg.slogdet()
返回值兩個值,即行列式的符號和對數行列式。 我需要指定標志。 所以為了獲得絕對值,我做了:
val = math.sqrt((2*pi)**30*np.linalg.slogdet(covM)[1])
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.