エレガントなSciPy ―Pythonによる科学技術計算

Book description

豊富な数学関連、科学関連のライブラリを持つPythonは、現在では多くの科学分野で使われています。本書では、実際の科学データとSciPy、NumPy、pandas、scikit-imageといった科学ライブラリを使って実際の問題を解決する作業を通じて、数学的計算の基礎となるデータ構造のNumPy配列を使いこなし、科学計算の「明確かつ簡潔かつ効率的でエレガントなコード」の書き方を学ぶことができます。掲載コードとデータ、環境、ツールはすべて本書のGitHubから利用可能です。Python 3.6対応。

Table of contents

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

Product information

  • Title: エレガントなSciPy ―Pythonによる科学技術計算
  • Author(s): Juan Nunez-Iglesias, Stéfan van der Walt, Harriet Dashnow, 山崎 邦子, 山崎 康宏
  • Release date: November 2018
  • Publisher(s): O'Reilly Japan, Inc.
  • ISBN: 9784873118604

You might also like

book

行動を変えるデザイン ―心理学と行動経済学をプロダクトデザインに活用する

by Stephen Wendel, 武山 政直, 相島 雅樹, 反中 望, 松村 草也

深津貴之氏推薦!「行動経済学、データ分析、サービス設計のエッセンスが高度に統合された行動変容デザインの良書です」 本書は、行動経済学と心理学をもとに、人々の行動、日常習慣を変える“行動変容”を促すプロダクトをデザインするための書籍です。主にヘルスケア(健康管理)、金融(資産管理)など、これまでITプロダクト(サービス、アプリなど)がなかなか使われてこなかった分野を対象に、ユーザーがやりたいと思っていたものの実行できなかった行動の実現を助けるプロダクトを作り出すための、実践的な視点や知識を提供します。

book

機械学習のための特徴量エンジニアリング ―その原理とPythonによる実践

by Alice Zheng, Amanda Casari, 株式会社ホクソエム

本書は、機械学習モデルの性能を向上させるために、データから良い特徴量を作る特徴量エンジニアリングについて解説します。前半では初学者に向けて、数値、テキスト、カテゴリ変数の基本的な取り扱い方を説明し、後半では特徴量ハッシング、ビンカウンティング、PCAによるデータの圧縮、さらに非線形特徴量とモデルスタッキング、画像特徴量抽出と深層学習による自動特徴学習などの高度なテーマを扱います。特徴量エンジニアリングを使いこなし、機械学習モデルの性能を最大限に引き出したいエンジニア必携の一冊です。

book

リーンエンタープライズ ―イノベーションを実現する創発的な組織づくり

by Jez Humble, Joanne Molesky, Barry O'Reilly, 角 征典, 笹井 崇司, Eric Ries

新規事業を生み出し、顧客にすばやく価値を届けるには、それを支援する体制が必要です。本書は、あらゆるムダを省き、継続的に仮説検証を繰り返しながら、プロダクトやサービスを構築する「リーンスタートアップ」の手法を既存の企業に適用するための方法を説明します。市場環境や顧客ニーズの変化に対応し、イノベーションを加速させ、組織文化、ガバナンス、財務管理を最適化し続けるハイパフォーマンス組織になるための原則とパターンを、さまざまな成功企業のケーススタディとともに詳述します。

book

仕事ではじめる機械学習 第2版

by 有賀 康顕, 中山 心太, 西林 孝

2018年の発行以来、多くの読者に支持された書籍を全面改訂! 不確実性の高い機械学習プロジェクトについて、「仕事で使う」という観点から整理するコンセプトはそのままに、初版の発行後に登場した概念や課題を取り上げます。「機械学習でいい感じにしてくれ」と突然上司に言われたとき、本書で学んだことが読者の力になるはずです。本書で得た知識は読者が「いま」困っている問題を解決する助けとなるでしょう。 第2版では、機械学習システムの開発と運用の統合する「ML Ops」、機械学習モデルを解釈し、その妥当性や根拠を明らかにする「機械学習モデルの検証」、ユーザーの行動を学習しながら予測を進める「バンディットアルゴリズム」、意思決定における予測システムの役割や意思決定のデザインを扱う「オンライン広告での機械学習」といった新章を追加しています。