IPythonデータサイエンスクックブック 第2版

―対話型コンピューティングと可視化のためのレシピ集

[cover photo]
TOPICS
クックブック , Data Science , Python
発行年月日
PRINT LENGTH
524
ISBN
978-4-87311-854-3
原書
IPython Interactive Computing and Visualization Cookbook, 2nd Edition
FORMAT
Print PDF
Ebook
4,620円
Ebookを購入する
Print
4,620円

Pythonと対話型環境Jupyter Notebookを使ってデータ分析および可視化を行うためのレシピを集めたクックブックです。NumPy、SciPy、Pandas、Matplotlib、Jupyterをはじめ、高機能で使いやすい数学・科学計算用ライブラリが充実しているPythonは、広い分野で利用されています。本書では、統計や機械学習といったデータサイエンス関連を中心に、信号処理、画像・音声処理、力学、数値解析など広範囲にわたる科学分野の話題を取り上げます。Jupyter Notebookによりさらに強力にそして使いやすくなったPythonとIPythonの威力を体感できます。Python 3、IPython 7対応の待望の改訂版です。

目次

訳者まえがき
まえがき

Ⅰ部 Jupyterを使った対話的コンピューティング

1章 JupyterとIPythonによる対話的コンピューティング入門
    はじめに
    レシピ1.1 IPythonとJupyter Notebook入門
    レシピ1.2 はじめてのJupyter Notebookによる探索的データ分析
    レシピ1.3 高速配列計算のためのNumPy多次元配列
    レシピ1.4 カスタムmagicコマンドによるIPython拡張の作成
    レシピ1.5 IPythonの設定システム
    レシピ1.6 単純なカーネルの作成

2章 対話的コンピューティングのベストプラクティス
    はじめに
    レシピ2.1 Unixシェルの基礎
    レシピ2.2 Python 3最新機能の紹介
    レシピ2.3 分散型バージョン管理システムGitの基礎
    レシピ2.4 Gitブランチを使った典型的な作業の流れ
    レシピ2.5 IPythonの効果的な対話的コンピューティング
    レシピ2.6 再現性の高い実験的対話型コンピューティングを行うための10のヒント
    レシピ2.7 高品質なPythonコード
    レシピ2.8 pytestを使った単体テスト
    レシピ2.9 IPythonを使ったデバッグ

3章 Jupyter Notebookをマスターする
    はじめに
    レシピ3.1 NotebookとIPython blocksを用いたプログラミング教育
    レシピ3.2 nbconvertによるJupyter Notebookから他フォーマットへの変換
    レシピ3.3 Jupyter Notebookのウィジェットをマスターする
    レシピ3.4 Python、HTML、JavaScriptでカスタムJupyter Notebookウィジェットを作成する
    レシピ3.5 Jupyter Notebookの設定
    レシピ3.6 はじめてのJupyterLab

4章 プロファイリングと最適化
    はじめに
    レシピ4.1 IPythonの実行時間計測
    レシピ4.2 cProfileとIPythonによるコードプロファイリング
    レシピ4.3 line_profilerを使った行単位のコードプロファイリング
    レシピ4.4 memory_profilerを使ったメモリ使用状況のプロファイリング
    レシピ4.5 不必要な配列コピーを排除するためのNumPy内部構造解説
    レシピ4.6 NumPyのストライドトリック
    レシピ4.7 ストライドトリックを使った移動平均の効率的計算アルゴリズム
    レシピ4.8 メモリマップを使った巨大NumPy配列処理
    レシピ4.9 HDF5による巨大配列の操作

5章 ハイパフォーマンスコンピューティング
    はじめに
    レシピ5.1 Pythonコードの高速化
    レシピ5.2 NumbaとJust-In-Timeコンパイルを使ったPythonコードの高速化
    レシピ5.3 NumExprを使った配列計算の高速化
    レシピ5.4 ctypesを使ったCライブラリのラッピング
    レシピ5.5 Cythonによる高速化
    レシピ5.6 より多くのCコードを使ったCythonコードの最適化
    レシピ5.7 CythonやOpenMPでマルチコアプロセッサの利点を生かすためのGIL解放
    レシピ5.8 CUDAとNVIDIAグラフィックカード(GPU)による超並列化コード
    レシピ5.9 IPythonによるPythonコードのマルチコア分散実行
    レシピ5.10 IPython非同期タスクの操作方法
    レシピ5.11 Daskを使ったメモリ外巨大配列の計算実行
    レシピ5.12 Jupyter NotebookとJulia言語

6章 データビジュアライゼーション
    はじめに
    レシピ6.1 Matplotlibのスタイル
    レシピ6.2 Seabornによる統計グラフの作成
    レシピ6.3 BokehとHoloViewsによるWeb上の対話型可視化環境
    レシピ6.4 Jupyter NotebookとD3.jsによるNetworkXグラフの可視化
    レシピ6.5 Jupyter Notebook上の対話型可視化ライブラリ
    レシピ6.6 AltairとVispy-Liteによるグラフ作成

Ⅱ部 データサイエンスと応用数学の標準的技法

7章 統計的データ分析
    はじめに
    レシピ7.1 PandasとMatplotlibを使った探索的データ分析
    レシピ7.2 はじめての統計的仮説検定:簡単なZ検定
    レシピ7.3 はじめてのベイズ法
    レシピ7.4 分割表とカイ二乗検定を用いた二変数間の相関推定
    レシピ7.5 最尤法を用いたデータへの確率分布のあてはめ
    レシピ7.6 カーネル密度推定によるノンパラメトリックな確率密度の推定
    レシピ7.7 マルコフ連鎖モンテカルロ法を使った事後分布サンプリングからのベイズモデルあてはめ
    レシピ7.8 Jupyter Notebookとプログラミング言語Rによるデータ分析

8章 機械学習
    はじめに
    レシピ8.1 はじめてのscikit-learn
    レシピ8.2 ロジスティック回帰を使ったタイタニック生存者の予測
    レシピ8.3 K近傍分類器を用いた手書き数字認識の学習
    レシピ8.4 テキストからの学習:ナイーブベイズによる自然言語処理
    レシピ8.5 サポートベクターマシンを使った分類
    レシピ8.6 ランダムフォレストによる重要な回帰特徴の選択
    レシピ8.7 主成分分析によるデータの次元削減
    レシピ8.8 データの隠れた構造を抽出するクラスタリング

9章 数値最適化
    はじめに
    レシピ9.1 数学関数の求根アルゴリズム
    レシピ9.2 数学関数の最小化
    レシピ9.3 非線形最小二乗法を使ったデータへの関数あてはめ
    レシピ9.4 ポテンシャルエネルギー最小化による物理系の平衡状態

10章 信号処理
    はじめに
    レシピ10.1 高速フーリエ変換による信号の周波数成分分析
    レシピ10.2 デジタル信号の線形フィルタ処理
    レシピ10.3 時系列の自己相関

11章 画像処理と音声処理
    はじめに
    レシピ11.1 画像の露出補正
    レシピ11.2 画像のフィルタ処理
    レシピ11.3 画像の分割
    レシピ11.4 特徴点の検出
    レシピ11.5 OpenCVを使った顔検出
    レシピ11.6 音声へのデジタルフィルタ処理
    レシピ11.7 Notebook上のシンセサイザー作成

12章 決定論的力学系
    はじめに
    レシピ12.1 カオス力学系の分岐図作成
    レシピ12.2 基本セルオートマトンのシミュレーション
    レシピ12.3 SciPyを使った常微分方程式のシミュレーション
    レシピ12.4 偏微分方程式のシミュレーション:反応拡散系とチューリングパターン

13章 確率力学系
    はじめに
    レシピ13.1 離散時間マルコフ連鎖のシミュレーション
    レシピ13.2 ポアソン過程のシミュレーション
    レシピ13.3 ブラウン運動のシミュレーション
    レシピ13.4 確率微分方程式のシミュレーション

14章 グラフ、幾何学、地理情報システム
    はじめに
    レシピ14.1 NetworkXを使ったグラフ操作と可視化
    レシピ14.2 NetworkXによる飛行ルートの描画
    レシピ14.3 トポロジカルソートを使った有向非巡回グラフの依存関係の解決
    レシピ14.4 画像中の連結成分の処理
    レシピ14.5 点集合に対するボロノイ図の計算
    レシピ14.6 Cartopyによる地理空間データの操作
    レシピ14.7 道路網の経路探索

15章 記号処理と数値解析
    はじめに
    レシピ15.1 はじめてのSymPy記号処理
    レシピ15.2 方程式と不等式の解
    レシピ15.3 実数値関数の解析
    レシピ15.4 正確な確率の計算と確率変数の操作
    レシピ15.5 SymPyを使った簡単な数論
    レシピ15.6 真理値表から論理命題式を生成する
    レシピ15.7 非線形微分系の分析:ロトカ-ヴォルテラ(捕食者と被食者)方程式
    レシピ15.8 はじめてのSage

付録A 日本語の取り扱い
    A.1文字列とエンコーディング
    A.2 Jupyter Notebookと日本語
    A.3 Matplotlibと日本語

索引