電子書籍「Python による科学技術計算 基礎編」 のサポートページです。
2017-02-18 Kindle ストアにてリフロー版の販売を開始しました。
固定レイアウト版
リフロー版
内容
科学や工学分野の問題を分析・解決するために、コンピュータで計算できる数学モデルを作成し、数値計算を行う一連の手法を科学技術計算と言います。 本書は、近年人気を得ている Python で科学技術計算を行えるようになるための入門書です。
Python は科学技術計算ライブラリが非常に充実しており、科学研究、工学、データ分析、金融、マーケティングなど様々な分野で活用されています。 近年はビッグデータの活用のためにデータ処理、数値計算の技能は文系、理系を問わず重要なものになってきており、Python の活躍の場もますます広がっています。
本書は Python 自体の基本事項から解説し、初めて Python を学ぶ人にも取り組みやすいように心がけました。 その他、次のような内容を説明しており、科学技術計算用途での Python の基礎がしっかりと身に付く本をめざしました。
- 配列計算、記号計算、データの可視化を行うための基本ライブラリ(NumPy、SciPy、SymPy、Matplotlib)の使用方法 これらの応用例は理工系の大学の初年度で学ぶような線形方程式系の解法、補間、微積分などのトピックに絞り、学生・社会人問わず学習しやすいようにしました。
- データ処理を効率良く行うための Pandas の使い方、HDF5 など様々なフォイル形式を使ったデータの入出力方法
- Numba と Cython ライブラリを用いて Python のコードを最適化する方法
- Python から R、Scilab、Octave といったデータ分析や科学技術計算に特化した言語を利用する方法 コードの最適化や他の言語の利用は、Python の科学技術計算ライブラリの速度や機能に不足を感じた場合に役立ちます。
総ページ数: 403
注意 固定レイアウト版とリフロー版の二種類を販売しています。 サンプルなどを読んでお使いの端末ではどちらの方が読みやすいかご確認ください。
目次
まえがき .. サポートページ .. 注意 .. 出版情報 1 はじめに 2 導入 .. 2.1 Python 環境の導入 ..... 2.1.1 `conda' コマンドの使い方 .. 2.2 Python インタープリタ .. 2.3 IPython コンソール ..... 2.3.1 入出力 ..... 2.3.2 入力補完 ..... 2.3.3 検索機能 ..... 2.3.4 シェルコマンドの呼び出し ..... 2.3.5 マジックコマンド ..... 2.3.6 プログラムの性能評価 ..... 2.3.7 デバッガ .. 2.4 モジュールの利用 ..... 2.4.1 インポート ..... 2.4.2 検索パス .. 2.5 Jupyter Notebook .. 2.6 Spyder 3 Python プログラミングの基本 .. 3.1 データ型とオブジェクト ..... 3.1.1 データ型 ..... 3.1.2 オブジェクト .. 3.2 変数 ..... 3.2.1 代入 ..... 3.2.2 変数名 .. 3.3 数値 ..... 3.3.1 整数 ..... 3.3.2 浮動小数点数 ........ 浮動小数点数 ........ 浮動小数点数の表現法 ..... 3.3.3 10 進固定及び浮動小数点数 ..... 3.3.4 複素数 .. 3.4 算術演算子 .. 3.5 文字列 ..... 3.5.1 文字列の作成 ..... 3.5.2 文字列の連結、繰り返し ..... 3.5.3 文字列の分割、結合 ..... 3.5.4 インデキシング ..... 3.5.5 スライシング ..... 3.5.6 その他の文字列操作 ..... 3.5.7 書式指定 ..... 3.5.8 エンコード、デコード .. 3.6 リスト ..... 3.6.1 リストの作成 ..... 3.6.2 要素の参照 ..... 3.6.3 リストの操作 .. 3.7 タプル ..... 3.7.1 タプルの作成 ..... 3.7.2 タプルの操作 .. 3.8 辞書 ..... 3.8.1 辞書の作成 ..... 3.8.2 辞書の操作 .. 3.9 集合 ..... 3.9.1 集合の作成 ..... 3.9.2 集合の演算 .. 3.10 その他の演算子 ..... 3.10.1 比較演算子 ..... 3.10.2 論理演算子 ..... 3.10.3 ビット演算子 ..... 3.10.4 シフト演算子 .. 3.11 条件分岐 .. 3.12 反復処理 ..... 3.12.1 while 文 ..... 3.12.2 for 文 .. 3.13 内包表記 ..... 3.13.1 リスト内包表記 ..... 3.13.2 辞書内包表記 ..... 3.13.3 集合内包表記 .. 3.14 関数定義 ..... 3.14.1 基本手順 ..... 3.14.2 可変長引数 ..... 3.14.3 キーワード引数の辞書化 ..... 3.14.4 ドキュメンテーション文字列 ..... 3.14.5 関数のテクニック .. 3.15 名前空間とスコープ .. 3.16 ジェネレータ ..... 3.16.1 ジェネレータ式 .. 3.17 デコレータ .. 3.18 クラス ..... 3.18.1 クラス定義 ..... 3.18.2 継承 ..... 3.18.3 親のメソッドの呼び出し ..... 3.18.4 プロパティ ..... 3.18.5 名前のマングリング ..... 3.18.6 クラスメソッド、静的メソッド ..... 3.18.7 特殊メソッド .. 3.19 エラー処理 ..... 3.19.1 例外 ..... 3.19.2 例外処理 4 配列を用いる計算 .. 4.1 準備 .. 4.2 オブジェクトを調べる .. 4.3 配列の作成 ..... 4.3.1 リストからの作成方法 ..... 4.3.2 配列要素のデータ型 ..... 4.3.3 一定値の配列 ..... 4.3.4 等間隔の配列 ..... 4.3.5 単位行列、対角行列、三角行列 ..... 4.3.6 格子状の行列 ..... 4.3.7 繰り返しパターンの行列 ..... 4.3.8 乱数配列 ..... 4.3.9 その他 .. 4.4 要素の参照 ..... 4.4.1 インデックス、スライス ..... 4.4.2 ビュー ..... 4.4.3 ファンシーインデックス参照 ..... 4.4.4 ブールインデックス参照 .. 4.5 形状や大きさの変更 ..... 4.5.1 形状変更 ..... 4.5.2 配列の結合 ..... 4.5.3 要素や軸の並べ替え .. 4.6 配列の基本演算 ..... 4.6.1 算術演算 ..... 4.6.2 ユニバーサル関数 ..... 4.6.3 真偽値の配列、条件式 ..... 4.6.4 統計関数 .. 4.7 ベクトルや行列の演算 ..... 4.7.1 積 ..... 4.7.2 行列クラス 5 記号計算 .. 5.1 準備 .. 5.2 記号 ..... 5.2.1 定義 ..... 5.2.2 定数と特殊シンボル ..... 5.2.3 整数 ..... 5.2.4 浮動小数点数 ..... 5.2.5 分数 ..... 5.2.6 関数 .. 5.3 数式 .. 5.4 数式の操作 ..... 5.4.1 単純化 ..... 5.4.2 多項式の変形 ..... 5.4.3 分数の変形 ..... 5.4.4 記号への代入 .. 5.5 数値評価 .. 5.6 微積分学 ..... 5.6.1 微分 ..... 5.6.2 積分 ..... 5.6.3 極限 ..... 5.6.4 総和、総乗 ..... 5.6.5 級数展開 .. 5.7 方程式 .. 5.8 行列 6 データの可視化 .. 6.1 準備 ..... 6.1.1 バックエンド .. 6.2 グラフ描画の基礎 ..... 6.2.1 基本的な 2 次元グラフ ..... 6.2.2 グラフの種類 ..... 6.2.3 グラフの表示スタイル .. 6.3 複数の図 ..... 6.3.1 挿入図 ..... 6.3.2 グラフを並べる ..... 6.3.3 2 軸グラフ ..... 6.3.4 配置のカスタマイズ .. 6.4 線やマーカーのスタイル ..... 6.4.1 線の色、線種、線幅 ..... 6.4.2 マーカー .. 6.5 文字による説明 ..... 6.5.1 テキストの書式 ..... 6.5.2 軸ラベルとタイトル ..... 6.5.3 凡例 .. 6.6 軸の設定 ..... 6.6.1 目盛り ..... 6.6.2 対数グラフ ..... 6.6.3 格子線 ..... 6.6.4 スパイン ..... 6.6.5 軸範囲 .. 6.7 3 次元データの視覚化 ..... 6.7.1 2 次元グラフ上での視覚化 ..... 6.7.2 3 次元グラフ 7 数値計算への応用 .. 7.1 線形方程式系の解法 ..... 7.1.1 準備 ..... 7.1.2 線形方程式系 ..... 7.1.3 正方系 ..... 7.1.4 優決定系 ..... 7.1.5 劣決定系 ..... 7.1.6 固有値問題 .. 7.2 補間 ..... 7.2.1 準備 ..... 7.2.2 補間 ..... 7.2.3 多項式 ..... 7.2.4 多項式補間 ..... 7.2.5 スプライン補間 .. 7.3 積分 ..... 7.3.1 準備 ..... 7.3.2 ニュートン・コーツ型の数値積分 ..... 7.3.3 ガウス型の数値積分 ..... 7.3.4 多重積分 ..... 7.3.5 任意精度の積分 ..... 7.3.6 積分変換 8 データ処理と分析 .. 8.1 Pandas ..... 8.1.1 準備 ..... 8.1.2 シリーズ ..... 8.1.3 データフレーム ..... 8.1.4 時系列 .. 8.2 Seaborn 9 データの入出力 .. 9.1 準備 .. 9.2 CSV .. 9.3 HDF5 ..... 9.3.1 ファイル内容の閲覧 ..... 9.3.2 h5py ........ ファイルの操作、グループ ........ データセット ........ 属性 ..... 9.3.3 PyTables ..... 9.3.4 Pandas HDFStore .. 9.4 JSON .. 9.5 Excel ..... 9.5.1 xlrd/xlwt ........ xlwt ........ xlrd ..... 9.5.2 PyOpenXL ..... 9.5.3 XlsxWriter ..... 9.5.4 Pandas .. 9.6 MAT 10 コードの最適化 .. 10.1 準備 .. 10.2 Numba ..... 10.2.1 numba.jit ..... 10.2.2 numba.vectorize .. 10.3 Cython ..... 10.3.1 基本的な使い方 ..... 10.3.2 型の宣言による高速化 ..... 10.3.3 外部 C コードとのインタフェース 11 他の言語との連携 .. 11.1 R .. 11.2 Scilab .. 11.3 Octave
PDF 版について
Leanpub にて PDF 版を販売しています。
現在は Kindle 版のみ販売しています。
更新情報
日時 | 版 | 更新内容 |
---|---|---|
2017-04-13 | 1.5 | ・ 1.1.1 節: 環境の構築 → conda コマンドの使い方 |
・ 「1.3.3 節 検索機能」 追加 | ||
・ 2.5.4 節: 添字による要素の参照 → インデキシング | ||
・ 2.5.4 節: 全面的に説明修正 | ||
・ 2.5.5 節: スライスによる要素の参照 → スライシング | ||
・ 2.5.5 節: 全面的に説明修正 | ||
・ 2.2.2 節: Unicode 文字 → 非 ASCII 文字 | ||
・ 2.5.8 節: Unicode 文字 → Unicode コードポイント | ||
・ 「2.13.4 節 ジェネレータ内包表記」 を 「2.16.1 節 ジェネレータ式」に移動 | ||
・ 2.8 節: シーケンス → コンテナ | ||
・ 2.9 節: シーケンス → コンテナ | ||
・ 2.9.1 節: add メソッドや remove メソッドの説明追加 | ||
・ 2.14.5 節: lambda 式の説明追加 | ||
・ 2.16 節: 全面的に説明修正 | ||
・ 2.18.1 節: MyClass() → MyClass | ||
・ 2.18.5 節: 全面的に説明修正 | ||
・ 3.2 節: ドキュメントを読む → オブジェクトを調べる | ||
・ 8.2 節: with 文の説明追加 | ||
用語の変更 | ||
・ イテレート可能オブジェクト → イテラブルオブジェクト | ||
・ 更新可能オブジェクト → 変更可能オブジェクト | ||
・ 更新不能オブジェクト → 変更不能オブジェクト | ||
2017-02-17 | 1.4 | ・ 2.3.2 節: しまします → しまいます |
・ 3.3.1 節: 3.5.1 節 → 3.6 節 | ||
・ 5.4.2 節 syle → style | ||
・ 8.2 節 各行 → 各列 | ||
・ 9.3.3 節: cdefF → cdef | ||
2017-01-16 | 1.3 | ・ プログラムコードの字下げ量変更 |
・ 段落構成を修正 | ||
・ 6.1.2 節: L * U → P @ L @ U | ||
・ 2.5.5 節: スライスの説明を修正: 間隔 → 増分値 | ||
・ 2.5.7 節: 脚注 4 の改行を修正 | ||
多数の誤字脱字を修正(一例は以下) | ||
・ 表 5.4.3: 省略文字列 '-' '--' | ||
・ 6.1.2 節: x_m → x_n | ||
2016-09-06 | 1.2 | ・ ページの余白を縮小し、図とフォントを拡大 |
・ 「ことができる」などの冗長な表現を修正 | ||
・ 各ライブラリの最新版に対応 | ||
・ 1 章タイトルを イントロダクション → 導入 に変更 | ||
多数の誤字脱字を修正(一例は以下) | ||
・ 1.1 節: =conda=$ → conda | ||
・ 1.3.2 節: コメントは から行末 → コメントは # (シャープ)から行末 | ||
・ 1.6 節: Matliplib → Matplotlib | ||
・ 5.1.1 節: インランバックエンド → インラインバックエンド | ||
2016-04-28 | 1.1 | ・ 1.1.1 節に Windows 環境での activate 方法などを追記 |
・ 1.3.1 節:「また、コードの行末にバックスラッシュ(」の後の文字抜けを修正 | ||
・ 1.3.1 節: Qt コンソールでの改行方法を追記 | ||
・ 1.6 節: テキストフ ィールド → テキストフィールド に修正 | ||
・ 5 章: Pyton → Python に修正 | ||
2016-04-24 | 1.0(初) | - |
2017-04-18
更新 1.5 版への更新が可能になりました。 お手元の本の版が古いものでしたら、以下の手順で更新の申請を行ってください。 本の版は「まえがき」のページに記載してあります。 なお、更新により古い版のメモなどは消えてしまいますのでご注意ください。 ご面倒かけて恐縮ですが、どうぞよろしくお願いします。
更新方法
Kindle
-
コンテンツと端末の管理 のページにアクセス
以下の方法でもページにアクセスできます。
- Amazon のアカウントサービス → [デジタルコンテンツ] 欄の [コンテンツと端末の管理]をクリック
- Kindle for PC のメニューバーから [ツール] → [コンテンツと端末の管理]をクリック
- コンテンツの一覧の中の、本書の日付の箇所に表示にされている [アップデートがあります] をクリック
以下の作業は必須ではありません。 もしも本書に章立ての変更のような大きな改訂があった場合、次のように設定しておくと上記の作業をせずとも本が更新されます。
- コンテンツと端末の管理 のページから [設定] タブをクリック
- [本の自動更新] を [オン] にする
自動更新は内容に大規模な更新があったと Amazon に認められないと反映されません。 基本的には手動での更新となりますがご了承ください。
Leanpub
Leanpub で PDF 版を購入された方は、自分のアカウントの Library ページから更新版をダウンロードできます。
ダウンロード
本書で使用しているデータファイルは以下からダウンロードできます。
問い合わせ
本書に関するご意見、ご質問などはメールにて受け付けております。
電子メール: books atmark org-tech dot xyz