2016-04-27 82 views
1

我最近升級了我的SciPy堆棧。以前工作的Ipython筆記本現在在新的Jupyter Notebook中失敗。升級時無法兼容Scipy無法在SymPy矩陣上使用SciPy功能

以前我可以使用SciPy/NumPy函數來評估SymPy矩陣。以下是在SymPy矩陣上執行的來自SciPy的eig函數的最小示例。它返回object arrays are not supported。這並沒有發生。在升級過程中,幾個軟件包可能已升級,包括SymPy。 Jupyter Notebook Screenshot

回答

2

我不知道它在你以前的設置是如何工作的,但轉換SymPy矩陣來與NumPy陣列的過程是明確的,早在2012年,每this answer,並SymPy具有用於此目的的效用函數matrix2numpy。因此,在您的情況下

LA.eig(matrix2numpy(M, dtype=float)) 

返回預期的特徵值。如果沒有輔助功能,它可以

LA.eig(np.array(M.tolist(), dtype=float)) 

如果您想SciPy的功能,接受SymPy對象,這將是一個問題爲their tracker,而不是堆棧溢出的問題。

+0

我必須事先有一個非常舊版本的SymPy或NumPy。 –