Colaboratoryのscipyのバージョンを上げる
注意
以下の記述は私的な備忘録であり、内容の正確さに関しては一切保証いたしませんので、悪しからず。
問題
以前やったodeintによる数値計算だが、scipy 1.0のドキュメントいわく、"ode"系のコマンドは古いAPIだそうで、今は"solve_ivp"などの新しいAPIに置き換わっているようだ。
別にodeintでも大抵の場合は問題ないと思うが、方程式が複素数の係数を含む場合にはodeintが使えず、少し面倒なやり方をしなければならなそうだったので、新しいコマンドを使ってみるためにColaboratoryのscipyのバージョンを上げることにした。
手順
まずは現行バージョンの確認。
import scipy
scipy.version.full_version
ちなみにnumpyとかもこれで同じように確認できる。結果は
'0.19.1'
と返ってきた。
バージョンを上げるのは次のようにする。おなじみpipコマンドは新しいツールを追加する場合などにも使う。
!pip install --upgrade scipy
実行すると、以下のように旧バージョンがアンインストールされて新しいバージョンがインストールされる。
Looking in indexes: https://pypi.org/simple, https://legacy.pypi.org/simple Collecting scipy Downloading https://files.pythonhosted.org/packages/9c/0b/5deb712a9ea5bb0a1de837d04ef7625c5f3ee44efe7ed0765ceda681d7f1/scipy-1.0.1-cp27-cp27mu-manylinux1_x86_64.whl (46.7MB) 100% |████████████████████████████████| 46.7MB 599kB/s Requirement not upgraded as not directly required: numpy>=1.8.2 in /usr/local/lib/python2.7/dist-packages (from scipy) (1.14.2) Installing collected packages: scipy Found existing installation: scipy 0.19.1 Uninstalling scipy-0.19.1: Successfully uninstalled scipy-0.19.1 Successfully installed scipy-1.0.1
最後にランタイムを再起動する。これをやらないと読み込まれるバージョンが変わらない?ので注意。
再起動後にもう一度バージョン確認を行い、
'1.0.1'
となっていればおk。
試しに先程の新しいコマンドを読み込んでみる。
from scipy.integrate import solve_ivp
エラーが出なければ作業完了(元のバージョンでは「そんなコマンドねーよ」と怒られる)。
さーて、後はやりたい計算をやるだけなんだが……うまくいくかな(汗)。