升级Scipy时不兼容不能在SymPy矩阵上使用SciPy功能

时间:2016-04-27 15:22:56

标签: numpy sympy

我最近升级了我的SciPy堆栈。以前工作的Ipython笔记本现在在新的Jupyter笔记本中失败了。

以前我可以使用SciPy / NumPy函数来评估SymPy矩阵。下面是在SymPy矩阵上执行SciPy的object arrays are not supported函数的最小示例。它返回public class MyView extends SurfaceView implements SurfaceHolder.Callback { // your other fields private GameListener mGameListener; public void setGameListener(GameListener gameListener) { mGameListener = gameListener; } public void update() { // your logic if (mGameListener != null) { // calling onGameEnd on the main thread post(new Runnable() { public void run() { mGameListener.onGameEnd(); } }); } } // rest of your class as it is public interface GameListener { void onGameEnded(); } } public class MainActivity extends Activity implements GameListener { // the rest of your class public void onGameEnded() { // call the method you need } } 。这不常发生。在我升级期间,可能已经升级了几个软件包,包括SymPy。 Jupyter Notebook Screenshot

1 个答案:

答案 0 :(得分:2)

我不知道它在之前的设置中是如何工作的,但是早在2012年,每this answer,SymPy具有实用功能{{3},将SymPy矩阵转换为NumPy数组的过程是明确的。 } 以此目的。所以,在你的背景下

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

返回预期的特征值。没有辅助函数,它可能是

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

如果您希望SciPy函数接受SymPy对象,那么matrix2numpy会出现问题,而不是Stack Overflow的问题。