読者です 読者をやめる 読者になる 読者になる

書評:『Pythonからはじめる数学入門』 (Amit Saha著,オライリージャパン)

はじめに

本書は,“Doing Math with Python – Use Programming to Explore Algebra, Statistics, Calculus, and More! (by Amit Saha)” の日本語訳版です. Pythonを電卓代わりに使いながら数学の計算をして楽しもう. その結果として,Pythonと数学両方の基礎的知識も得ようというのが本書の趣旨です.

書評

Python初級者向け

Pythonに関しては,平易かつ丁寧に述べてられています. Python3の初歩的知識は前提とされていますが,内容は全体的に初級レベルなので, Python初心者でも問題なく通読できると思います. SymPyという記号計算ライブラリと,matplotlib(可視化ライブラリ)を積極的に使っているのが特徴です.

数学に関しては平易だが,やや難あり

数学部分に関しては,高校生程度の知識があれば十分理解可能です. 例えば,2次方程式の解の公式,複素数演算,平均と分散,集合,極限,微分積分の定義,ぐらいまでを 知っていれば問題なく読めます. ただし,全体的に記述が説明不足あるいは不正確な傾向にあり,教育的配慮が十分なされているとは言い難いです. この点については,実に惜しい気がしました.

記号計算(symbolic math)について

本書の後半では記号計算*1について述べています. ここでは,記号計算について,簡単に補足しておきます. コンピュータの計算は,基本的には,数値(整数や浮動小数点数)の四則演算と,条件分岐,繰り返し処理,組み合わせで実行されるものです. いわゆる,数値計算と呼ばれるものです. 記号計算は,数値計算とは異なり,主に文字式や関数(symbol)を対象とした,因数分解や展開,微分積分などの数学計算のことを指します. 記号計算用途のソフトウェアとしては, Mathematica(やWolframAlpha)などが広く使われています. Mathematicaは記号計算に特化して作られた商用製品なので,Python+SymPyよりも,性能と利便性に関しては優れています. 記号計算だけをしたいというのであれば,Mathematicaの方が,少なくとも現時点では良いでしょう. しかし,PythonにはSymPy以外にも,NumPyやSciPyといった,強力な数値計算ライブラリ群があります. さらにPythonオープンソースで,世界中の多くの人が使っています. 学習する意義はPythonの方が桁違いに大きいです( もちろん,二者択一ではないので,両方使えるようになるのが一番です).

最後に

率直に言って,日本語版はおすすめできません. 原著の一部をGoogle Booksで確認しましたが,原著では明瞭に書いてあるところが,日本語版ではわかりにくくなっているところが,少なからず見受けられました. 興味のある人には,原著を読むことをおすすめします. 本書を5点満点で点数を付けるとすれば,原著は3点ぐらい(全体を読んでいないので,参考程度にお考え下さい) ですが,日本語版はそれを下回る2点です.

いずれにせよ,数学に関する記述が全体的に雑なので, 原著・日本語版ともに,数学を学ぶ目的では読むべきではありません. Pythonの基礎とともに,matplotlibやSymPyを学びたい人にとっては, 本書は数少ない選択肢のひとつとして価値はあるでしょう.□

(2017-05-15改訂)

*1:日本語版では「式の計算」とより易しい言い方になっています.