Pythonと対話型環境Jupyter Notebookを使ってデータ分析および可視化を行うためのレシピを集めたクックブックです。NumPy、SciPy、Pandas、Matplotlib、Jupyterをはじめ、高機能で使いやすい数学・科学計算用ライブラリが充実しているPythonは、広い分野で利用されています。本書では、統計や機械学習といったデータサイエンス関連を中心に、信号処理、画像・音声処理、力学、数値解析など広範囲にわたる科学分野の話題を取り上げます。Jupyter Notebookによりさらに強力にそして使いやすくなったPythonとIPythonの威力を体感できます。Python 3、IPython 7対応の待望の改訂版です。
IPythonデータサイエンスクックブック 第2版
―対話型コンピューティングと可視化のためのレシピ集
Cyrille Rossant 著、菊池 彰 訳
- TOPICS
- クックブック , Data Science , Python
- 発行年月日
- 2019年05月
- PRINT LENGTH
- 524
- ISBN
- 978-4-87311-854-3
- 原書
- IPython Interactive Computing and Visualization Cookbook, 2nd Edition
- FORMAT
- Print PDF
目次
訳者まえがき まえがき Ⅰ部 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と日本語 索引