じめに

線形代数は、実世界のさまざまな問題の解決に役立っています。本書は、Pythonを使って線形代数を学ぶことで、線形代数を実世界の問題に応用する力を身につけることを目標としています。線形代数の基礎的な概念と計算方法を学び、Pythonを使ってそれらを実装することで、線形代数の理解を深めることができます。また、図形的処理とデータ分析の分野での具体的な応用例も紹介しています。

Pythonを使って学習するという言葉には、以下の2通りの意味が込められています。

  • Pythonを使った線形代数の計算を実装することで、Pythonによる線形代数の応用ができるようになります。線形代数の学習の段階からPythonのコードを書く訓練も同時に行うことで、与えられた問題や数式から具体的なPythonのコードを作成できるようになることを目指しています。
  • Pythonを線形代数を理解するための道具として利用します。数学は抽象的理論なので理解が難しいことがありますが、Pythonを使って具体的な数値例を計算することでどのような手順で計算するのかがわかり、理解の助けになります。例えば、実装例のところどころに適宜print関数を使って内部状態を表示することで計算過程を可視化することができ、自分なりの理解を探ることもできます。

Pythonを使った応用を目指すとはいえ、初期段階の理解においては、紙とペンを使って手を動かすことも重要であると考えています。そのため、本書では手で計算する方法を示すことにも力を入れています。手で計算することで数学的な理解が深まり、Pythonでの応用もスムーズになると考えるからです。また、途中の練習問題についても、手で計算する問題、Pythonで計算する問題の両方を用意しています。ぜひ両方ともやってみるようにしてください。

数学を使った応用を目指す人達にとって、数学の定理の証明は嫌われがちですが、本書ではあえて多くの定理の証明を取り上げています。線形代数の分野では、定理の証明は通常の手を動かす計算の延長上にあることが多く、証明のためだけに必要な技巧的なテクニックなどはほとんど存在していないと考えているからです。定理の証明を通じて、線形代数の概念と計算方法をより深く理解できるようになることを目指しています。もし証明で難しいところ、わかりづらいところがあったとしてもそこは飛ばして次を読み進めてもよいですが、証明を理解することは無駄にならないと考えています。

本書では基本的なことから積み上げて説明していますが、最終的には応用例の理解を目標にしており、応用例を理解するために必要な線形代数の概念と計算方法を厳選して解説しています。したがって、一般的な線形代数の教科書であれば取り上げるような題材をあえて省略していることがあります。体系的な数学の理解を目指す方は、本格的な線形代数の教科書をおすすめします。

Pythonで線形代数の計算をするライブラリとしてはNumPyが広く使われており、本書でも主にNumPyを使って解説します。Pythonの文法規則やNumPyの使い方の詳細については本書では解説しませんので、適宜入門書や公式ドキュメントを参考にしてください。とはいえ、NumPyでベクトルや行列を扱うための基本となる配列の扱いについては最小限の解説を行います。

加藤公一(かとうきみかず)

現在,みずほ証券でデータ分析にかかわる業務に従事。東京大学大学院情報理工学系研究科コンピュータ科学専攻博士課程終了。博士(情報理工学博士)。主な著書に「機械学習のエッセンス」(SB クリエイティブ)がある。