内容紹介
Pythonの対話環境IPythonを使ってデータ分析を行う大人気のレシピ集、待望の改訂版!
2015年に発刊され、着実に増刷を重ねている『IPythonデータサイエンスクックブック』の改訂版です。Pythonの豊富な科学技術計算用のライブラリを簡単に使いこなせるPythonの対話型環境IPythonは科学者やデータサイエンティストの人気を集めています。内容は第1版を踏襲したものですが、プラットフォームとしてJupyter notebookを全面採用、Python 2からPython 3へのアップデート、使用ツールのアップデート、ライブラリの流行り廃りに合わせて全面的な改訂、加筆が行われています。
このような方におすすめ
Pythonプログラマ、データサイエンティスト、データ処理に関わるすべての人
目次
詳細目次
訳者まえがき
まえがき
Ⅰ部 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と日本語
索引
続きを見る