豊富な科学関連、数学関連のライブラリを持つPythonは、多くの科学技術分野で使われています。本書では、SciPyの使い方とその威力を紹介するだけでなく、実際の科学データとNumPy、pandas、Matplotlib、IPython、Jupyterノートブック、scikit-learn、scikit-imageといったライブラリやツールを利用して実際の問題を解決する作業を通じて、数学的計算の基礎となるデータ構造のNumPy配列を使いこなし、科学技術計算の明確かつ簡潔かつ効率的でエレガントなコードの書き方を学ぶことができます。掲載コードとデータ、環境、ツールはすべて本書のGitHubから利用可能です。Python 3対応。
エレガントなSciPy
―Pythonによる科学技術計算
Juan Nunez-Iglesias、Stéfan van der Walt、Harriet Dashnow 著、山崎 邦子、山崎 康宏 訳
- TOPICS
- Programming , Python
- 発行年月日
- 2018年11月
- PRINT LENGTH
- 272
- ISBN
- 978-4-87311-860-4
- 原書
- Elegant SciPy: The Art of Scientific Python
- FORMAT
- Print PDF
目次
まえがき 1章 エレガントなNumPy:科学Pythonの基礎 1.1 データの紹介:遺伝子発現とは 1.2 NumPyのN次元配列 1.2.1 Pythonのリストでなくndarrayを使う理由 1.2.2 ベクトル化 1.2.3 ブロードキャスティング 1.3 遺伝子発現データセットの探索 1.3.1 pandasを使ってデータを読み込む 1.4 正規化 1.4.1 標本間の正規化 1.4.2 遺伝子間の正規化 1.4.3 標本間と遺伝子間の正規化:RPKM 1.5 まとめ 2章 NumPyとSciPyを用いた分位数正規化 2.1 データの取得 2.2 遺伝子発現分布の標本差 2.3 リード数データのバイクラスタリング 2.4 クラスタの可視化 2.5 生存率予測 2.5.1 追加の課題:TCGAの患者クラスタを使用する 2.5.2 追加の課題:TCGAのクラスタを再現する 3章 ndimageを使った画像領域のネットワーク 3.1 画像は単なるNumPy配列 3.1.1 演習:グリッドオーバーレイを追加する 3.2 信号処理で使うフィルタ 3.3 画像のフィルタリング(2次元フィルタ) 3.4 汎用フィルタ:近傍データの任意の関数 3.4.1 演習:Conwayのライフゲーム 3.4.2 演習:ソーベル勾配の大きさ 3.5 グラフとNetworkXライブラリ 3.5.1 演習:SciPyを使った曲線回帰 3.6 領域隣接グラフ 3.7 エレガントなndimage:画像領域からグラフを構築する方法 3.8 すべてのまとめ:平均の色を用いた領域分割 4章 周波数と高速フーリエ変換 4.1 周波数とは 4.2 応用例:鳥のさえずりのスペクトログラム 4.3 歴史 4.4 実装 4.5 DFTの長さを決定する 4.6 さらなるDFTの概念 4.6.1 周波数とその並び順 4.6.2 窓を掛ける 4.7 実世界の応用例:レーダデータの解析 4.7.1 周波数領域の信号特性 4.7.2 窓を掛ける:応用編 4.7.3 レーダ画像 4.7.4 FFTの他の応用例 4.7.5 参考文献 4.7.6 演習:画像の畳み込み 5章 疎行列を用いた分割表 5.1 分割表 5.1.1 演習:対応行列の計算複雑性 5.1.2 演習:対応行列を計算する別のアルゴリズム 5.1.3 演習:多クラス対応行列 5.2 scipy.sparseのデータ形式 5.2.1 COO形式 5.2.2 演習:COOを使った表現 5.2.3 CSR形式 5.3 疎行列の適用例:画像変換 5.3.1 演習:画像の回転 5.4 分割表再び 5.4.1 演習:必要なメモリ容量を減らす 5.5 セグメンテーションにおける分割表 5.6 情報理論の概要 5.6.1 演習:条件付きエントロピーの計算 5.7 セグメンテーションにおける情報理論:情報変化量 5.8 疎行列を使うようにNumPy配列のコードを変換する 5.9 情報変化量の使い方 5.9.1 追加の課題:セグメンテーションの実践 6章 SciPyで行う線形代数 6.1 線形代数の基本 6.2 グラフのラプラシアン行列 6.2.1 演習:回転行列 6.3 脳データのラプラシアン 6.3.1 演習:神経細胞の接続の近さを表す図を描く 6.3.2 チャレンジ問題:疎行列を扱う線形代数 6.4 ページランク:評判と重要度のための線形代数 6.4.1 演習:ぶら下がりノードの処理法 6.4.2 演習:異なる固有ベクトルの手法の等価性 6.5 まとめ 7章 SciPyを使って関数を最適化する 7.1 SciPyの最適化関数:scipy.optimize 7.1.1 事例:画像の最適な移動距離を計算する 7.2 optimizeを使った画像のレジストレーション 7.3 ベイスン-ホッピング法で極小値を避ける 7.3.1 演習:align関数を修正する 7.4 「何が最適か?」:適切な目的関数の選び方 8章 Toolzを使って小さなノートパソコンでビッグデータを処理する方法 8.1 yieldを使ったストリーミング 8.2 ストリーミングライブラリToolzの紹介 8.3 k-merのカウントとエラー補正 8.4 カリー化:ストリーミングのスパイス 8.5 k-merのカウント再び 8.5.1 演習:ストリーミングデータの主成分分析(PCA) 8.6 全ゲノムを基にマルコフモデルを作成する 8.6.1 演習:オンラインで実行するunzip 付録 演習の解答 A.1 解答:グリッドオーバーレイを追加する A.2 解答:Conwayのライフゲーム A.3 解答:ソーベル勾配の大きさ A.4 解答:SciPyを使った曲線回帰 A.5 解答:画像の畳み込み A.6 解答:対応行列の計算複雑性 A.7 解答:対応行列を計算する別のアルゴリズム A.8 解答:多クラス対応行列 A.9 解答:COOを使った表現 A.10 解答:画像の回転 A.11 解答:必要なメモリ容量を減らす A.12 解答:条件付きエントロピーの計算 A.13 解答:回転行列 A.14 解答:神経細胞の接続の近さを表す図を描く A.14.1 チャレンジを受けて立つ:疎行列を扱う線形代数 A.15 解答:ぶら下がりノードの処理法 A.16 解答:手法の検証 A.17 解答:align関数を修正する A.18 解答:scikit-learnライブラリ A.19 解答:パイプの最初の部分に1段階追加する エピローグ E.1 次の目標 E.1.1 メーリングリスト E.1.2 GitHub E.1.3 カンファレンス E.2 SciPyの向こう E.3 本書に寄与する方法 E.4 また会う日まで 索引