近年、ビジネスにおける数学の重要性が認識され始めています。その背景にはAIの台頭も当然ありますが、そればかりではありません。デジタルトランスフォーメーション(DX)をはじめとする今後求められる変革には、数学的な素養がキーになると気づき始めたからです。

しかし、数学と言われても、社会人になってから全く疎遠であり、そもそも苦手意識がある場合に、これから学び直すのは一筋縄にゆきません。

そんな時にオススメなのが、Pythonでプログラミングしながら「高校数学」を学ぶことです。数学だけの本を読んでも、さっぱり頭にに入らなかった方でも、実際に手を動かしてプログラミングしてみると「あっそういうことか!」と腑に落ちる体験ができます。

幸いにも、現在ぴったりの良書が2冊刊行されています。両方ともPythonで高校数学をプログラミングしながら学ぶことができます。今回はこのオススメの2冊をご紹介します。

Pythonで高校数学にオススメの2冊

今回は以下の2冊をオススメします。それぞれの特徴をまとめてみましたので、「自分にどちらが合いそうか」を検討する際に参考にしてください。

文系プログラマーのためのPythonで学び直す高校数学 谷尻かおり、2019.3

とても親切でわかりやすい説明が特徴です。中学数学の範囲についても丁寧に説明しています。例えば、方程式、比例式、ピタゴラスの定理とは何であるか、やさしく解説してくれています。中学数学に少し自信がなくても大丈夫です。

そして、もう一つの特徴がコンピュータで扱う数値と演算の仕組みの解説がわかりやすいことです。浮動小数点数やビット演算について、ここまで丁寧な解説はあまり見かけません。ただ、どうしても原理に関する部分はつまずきやすいので、すぐにPythonを動かしながら数学を学びたい方は、「第3章方程式で図形を描く」から始めてもいいかもしれません(本当はすごく大事なところですが・・)。

Pythonからはじめる数学入門 Amit Saha(訳:黒川 利明)、2016.5

本書の「はじめに」にあるように、”高校で学ぶ数学の内容をプログラムを使って科学する”ことを目的としています。放物運動や単振り子運動といった物理現象、フラクタルやマンデルブロ集合による幾何学模様をプログラミングします。まさに、高校数学を使いながら学ぶことができ、科学好きが楽しめる本です。

そして、数学の説明が厳密なのもこの本の特徴です。例えば、「関数とは写像である」という本来あるべき説明をしていますが、高校数学では抽象的なせいか教えません。そのため、理系出身で一から復習したいという方は、この本の説明の方が馴染みがあるかもしれません。

おもに使用するライブラリ

上記の2冊では以下のようなライブラリをおもに使用しています。どれもPythonではスタンダードなライブラリです。

  • 「Pythonで学び直す高校数学」:MatplotlibNumPyPandasSymPy
  • 「Pythonからはじめる数学入門」:MatplotlibSymPy

上記の通りライブラリに関する違いは、NumPyPandasを利用しているかどうかです。この2つのライブラリはデータ分析でよく用いますので、このライブラリの基本的な使い方も覚えたい場合は「Pythonで学び直す高校数学」が向いています。

一方、「Pythonからはじめる数学入門」は、SymPyを用いて数式からアプローチするスタイルが主流ですので、数式を作成して結果をプログラミングで確認しながら学習できます。

各ライブラリの概要

Matplotlibはグラフ描画ライブラリであり、様々な種類のグラフを出力できます。NumPyは多次元配列をサポートした数学関数ライブラリであり、ベクトルと行列を扱いやすくなります。Pandasはデータ解析を支援するライブラリであり、CSVやエクセルのファイルを読み込んで処理できます。SymPyは記号演算をサポートするライブラリです。例えば、2次方程式の解をexpr = x**2 + 5*x + 4のように「記号x」を使って解くことができます。

Google Colaboratoryですぐ始める

上記の2冊では、Anacondaをインストールして使うことを薦めています。確かに、Anacondaは様々なライブラリを一括でインストールしてくれるので便利ですが、ここではもっと簡単なGoogle Colaboratoryをオススメします。

Google Colaboratoryならば、自分のパソコンに何もインストールしないですぐに始められます。詳しくは、以下の記事を参照してください。

機械学習やデータ分析を学ぶには、まずは参考書から始めるのが一般的です。そして、学習を始めるために、自分のパソコンに環境を構築します。そこで、多くの書籍ではAnacondaのインストールを薦めています。…