ISBN 9784798163741
現場で使える!Python科学技術計算入門 NumPy/SymPy/SciPy/pandasによる数値計算・データ処理手法
概要
Python 科学技術計算ライブラリを体系的に習得する
想定読者
数値解析・シミュレーションを業務に取り入れたい理工学系の学生・エンジニア・研究者、およびデータ処理の自動化を始めたいデータサイエンティスト
こんな人には向いていない
- NumPy/SciPy をすでに実務で使いこなしており、より高度な最適化や並列計算手法を求めている中上級者
- Python そのものの文法を全く知らない完全初学者(本書は Python 基礎を手短に済ませて科学計算ライブラリ解説へ進む構成)
- 機械学習・深層学習を主目的とする読者(本書の対象は数値計算・代数計算・データ処理であり、PyTorch/TensorFlow は扱わない)
読了後にできるようになること
- NumPy の多次元配列操作と線形代数(行列計算・固有値分解)を実装レベルで扱える
- SymPy を使って記号的微積分・方程式の代数的求解をコードで実行できる
- SciPy の数値積分・補間・統計関数を目的に応じて選択・適用できる
- Matplotlib で 2D/3D グラフを描画し、論文・レポート品質の可視化ができる
- pandas でCSV・Excel・JSON等の実データを読み込み、整形・集計・グラフ化できる
- Cython と Numba による Python コードの高速化手法を選択・適用できる
本書のキー概念(章解説)
- 第 1 章 開発環境の準備 — Anaconda / Jupyter Notebook のセットアップ。既に環境を持つ読者は飛ばしてよい
- 第 2 章 Pythonプログラミングの基本 — 変数・コンテナ・制御フロー・関数の概説。Python 経験者は参照程度で十分
- 第 3 章 NumPyによる配列計算 — 配列生成・スライス・形状変更・ブロードキャスト。本書の核となる章の一つ
- 第 4 章 SymPyによる代数計算 — シンボル計算・微積分・行列代数。数値解ではなく厳密解を得たい研究者に特に有用
- 第 5 章 Matplotlibによるデータの可視化 — 2D/3D グラフ、軸設定、複数プロット。論文向けグラフ作成の実践基盤
- 第 6 章 NumPy/SciPyによる数値計算とその応用 — 線形代数・微積分・統計・補間を網羅。実際の数値解析業務に最も直結する章
- 第 7 章 pandasによるデータ処理と分析 — DataFrame 操作・グラフ化。実験データや測定値の整形に即応用できる
- 第 8 章 データファイルの入出力 — CSV・JSON・Excel の読み書き。外部データとの連携に必要な基礎
- 第 9 章 プログラムの高速化 — Cython・Numba によるチューニング。計算コストが課題になった段階で読み返す価値がある
ハイライト
- Cythonを使ったPythonコードの高速化: コンパイル方式でC言語並みの速度を引き出し、数値計算の実行時間を大幅に短縮できます(本書の独自性が最も顕著な章。科学技術計算書でありながら高速化手法まで一冊でカバーする点)
- 科学技術計算に必要なPythonに特化し、NumPy、SciPy、SymPy、Matplotlibの使用方法と、データ処理で利用されるpandasの使用方法を解説(本書がカバーするライブラリの全体像を一文で示しており、購入判断に直結する)
編集メモ
Qiita への言及記事なし(検索結果0件)、Rakuten ランキング情報なし。書籍の内容は網羅的だが外部シグナルが確認できないため supplementary とする
読む前に押さえておきたいこと
- Python の基本文法(変数・リスト・for ループ・関数定義)をひと通り書いたことがある
- 線形代数(行列・ベクトル)と微積分の基本概念を学習済みであること(SymPy・SciPy 章の理解に必要)
学習のコツ
- Python 経験者は第1・2章を読み飛ばし、第3章(NumPy)から開始するのが効率的
- 第4章(SymPy)と第6章(NumPy/SciPy)はそれぞれ独立して読める。代数的アプローチ優先なら4章を先に、数値解析優先なら6章を先に読む
- 第9章(高速化)は最初から読む必要はない。第3・6章で実装したコードが遅いと感じた時点で参照すると効果を実感しやすい
- Jupyter Notebook 上でコードを実際に動かしながら読むと、特に第5章の可視化・第7章の pandas 操作で定着度が上がる
出版社による内容紹介
研究や開発、データ分析に使える! 科学技術計算における Python利用の基礎を習得 【本書の概要】 高機能で、学びやすいPythonは、科学技術計算の用途でも広く利用されています。 本書は、コンピュータを用いて数学的問題の解決に取り組む学生、エンジニア、研究者の方に向けて、 Pythonの基礎知識と、科学技術計算への利用方法について解説した書籍です。 【本書の対象読者】 ・科学・工学系研究(シミュレーション)を行う理工学生、エンジニア、研究者 ・データサイエンティスト 【本書で特徴的な内容】 ・科学技術計算に必要なPythonに特化 ・数値計算、代数計算、データの可視化を行う、NumPy、SciPy、SymPy、Matplotlibの使用方法 ・データ処理で利用されるpandasの使用方法 ・様々なファイル形式を使ったデータの入出力方法 ・CythonとNumbaを用いたPythonコードの高速化 【著者プロフィール】 かくあき 東京工業大学工学部および同大学院理工学研究科を2012年に修了。 学生時代から数値解析を中心にPython、Matlab、Fortran、C、LISPなどのプログラミング言語を利用。 Pythonの普及の一助となるべく、Udemyで講座を公開、KDPでの電子書籍を出版するなど情報発信。 Chapter 1 開発環境の準備 1.1 Pythonのインストール 1.2 Jupyter Notebook Chapter 2 Pythonプログラミングの基本 2.1 オブジェクト、変数 2.2 数値 2.3 コンテナ 2.4 比較演算子、論理演算子 2.5 制御フロー文 2.6 関数定義 Chapter 3 NumPyによる配列計算 3.1 NumPyの準備 3.2 配列の作成 3.3 要素の参照 3.4 配列の形状や大きさの変更 3.5 配列の基本計算 Chapter 4 SymPyによる代数計算 4.1 SymPyの準備 4.2 シンボルの作成 4.3 SymPyの数値型 4.4 数式の基本的な操作 4.5 数式の単純化 4.6 SymPyの行列型 Chapter 5 Matplotlibによるデータの可視化 5.1 Matplotlibの準備 5.2 グラフ作成の基礎 5.3 複数のグラフを並べる 5.4 線やマーカーの設定 5.5 文字による説明を加える 5.6 軸の設定 5.7 3次元データのグラフを作成する Chapter 6 NumPy/SciPyによる数値計算とその応用 6.1 線形代数 6.2 微分積分 6.3 統計 6.4 補間 Chapter 7 pandasによるデータ処理と分析 7.1 pandasの準備 7.2 pandasのデータ構造の作成 7.3 データフレームの基本的な操作 7.4 データフレームのグラフの作成 Chapter 8 データファイルの入出力 8.1 テキストファイルの基本的な入出力 8.2 CSV形式を扱う 8.3 JSON形式を扱う 8.4 Excelファイルを扱う Chapter 9 プログラムの高速化 9.1 プログラムの性能評価 9.2 Cython 9.3 Numba
この本がどの学習段階で役立つかは、 関連する ロードマップ から確認できます。