2 回答

TA貢獻(xiàn)1817條經(jīng)驗(yàn) 獲得超14個(gè)贊
簡(jiǎn)短的回答:
M_rref.astype(float)
將解決您的問題。
長(zhǎng)答案:
為什么會(huì)發(fā)生這種情況?
為了找出答案,請(qǐng)嘗試返回矩陣并嘗試以下操作:M
>>> print(M[0]) >>> print(type(M[0]))
您將獲得:
4 sympy.core.numbers.Integer
這就是原因。即使它說它是4,它實(shí)際上是一個(gè)存儲(chǔ)在SymPy矩陣中的SymPy對(duì)象。這就是它應(yīng)該有的樣子:SymPy是用來表示符號(hào)數(shù)學(xué)的。因此,當(dāng)您將其轉(zhuǎn)換為numpy數(shù)組時(shí),NumPy將識(shí)別為對(duì)象。sympy.core.numbers.Integer
希望這能回答您的問題。

TA貢獻(xiàn)1827條經(jīng)驗(yàn) 獲得超9個(gè)贊
在此 PR 中,有一個(gè)關(guān)于將 numpy 矩陣錯(cuò)誤地轉(zhuǎn)換為 SymPy 矩陣的說明。使用它(而不是,我認(rèn)為這是為了將對(duì)象的內(nèi)容轉(zhuǎn)換為浮點(diǎn)數(shù)),我會(huì)這樣做:float
>>> sy.Matrix(M.rows, M.cols, [sympify(x) for x in M_rref]).n()
這應(yīng)該給你一個(gè)SymPy矩陣,其中的條目被評(píng)估為浮點(diǎn)數(shù)。
添加回答
舉報(bào)