とつとつとしてろうとせず

ひまつぶしにどうぞ。

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

エラーが出なければ作業完了(元のバージョンでは「そんなコマンドねーよ」と怒られる)。

さーて、後はやりたい計算をやるだけなんだが……うまくいくかな(汗)。