2016-04-27 11 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

私はそれがあなたの前のセットアップで働いていたのか分からないが、numpyのアレイにSymPy行列を変換するプロセスはthis answerごとに、早ければ2012年のように、明示的だった、とSymPyは、この目的のためのユーティリティ機能matrix2numpyを持っています。したがって、あなたの文脈では、

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

は期待される固有値を返します。あなたはSymPyオブジェクトを受け入れるためにscipyのダウンロード機能が欲しい場合はヘルパー関数がなければ、それは

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

可能性があり、それはtheir trackerための問題ではなく、スタックオーバーフローのための質問になります。

+0

私は以前にSymPyまたはNumPyの非常に古いバージョンを持っていたに違いありません。 –

関連する問題