Python 3

Python3のテキストができました.

Python3のテキストミラーサイト
無料で差し上げますので,意見や感想をくださいませ.
→ katsu_wm%mukogawa-u.ac.jp (’%’を’@’に変えるとメールアドレスになります)
ページ末尾のコメント入力欄(非公開形式)も使えます.(名前,メールアドレスなどは無しで大丈夫です)

公開されている情報が豊富なPythonですが,アプリづくりのための一通りの入門ができる書籍などが見当たらない上,Kivyの日本語の情報も少ないのでテキストを自前で作ることにしました.

特に,既に別の言語を習得している人が,手っ取り早くPythonに取り掛かるのに役立つと考えています.

Pythonには有用なライブラリ(モジュール)がたくさん公開されているので,いろんなモジュールの使い方を簡単に説明した「ライブラリブック」みたいな本も書いています.(ミラーサイト
ライブラリブックは現在:
OpenCV,Pillow,pygame,Eel,NumPy,SciPy,matplotlib,SymPy,hashlib, passlib, Cython, Numba, ctypes, PyInstaller, JupyterLab, json, urllib, zenhan, jaconv
について記述しています.

データ処理用ライブラリ(pandas,NumPy,SciPy)の基本的な使用方法に関するテキスト「Python3によるデータ処理の基礎」を公開しました.これはまだまだ試作品でして,日々修正,改訂しています.(ミラーサイト

【公開しているテキストにつきまして】
ここに公開しているテキストは「フリーソフトウェア」とします.(著作権は保持しています)
商用,非商用問わずご使用ください.印刷,再配布共にしていただいて構いませんが,その際は内容の改変をせずにお願いします.
内容に不備がありましたら是非ご連絡ください.可能な限り迅速に修正して再配信いたしますが,テキスト内の「免責事項」に了承してください.

■ Pythonのテキストに掲載しているサンプルプログラム
→こちら

■ 「Python3モジュールブック」に掲載しているサンプルプログラム
→こちら

■ 「Python3によるデータ処理の基礎」に掲載しているサンプルプログラム
→こちら

プログラム開発や教材作成の参考にしている書籍(広告リンクになっています)

—【テキスト本体の目次】—————————————————-
1 はじめに — 1
1.1 Pythonでできること — 1
1.2 本書の内容 — 1
1.2.1 本書の読み方 — 2
1.3 処理系の導入(インストール)と起動の方法 — 2
1.3.1 Python処理系のディストリビューション(配布形態) — 2
1.3.2 Python処理系の起動 — 2
1.3.3 対話モード — 3
1.4 使用するGUIライブラリ — 3
1.5 Pythonに関する詳しい情報 — 3
2 Pythonの基礎 — 4
2.1 スクリプトの実行 — 4
2.1.1 プログラム中に記述するコメント — 5
2.1.2 プログラムのインデント — 5
2.2 変数とデータの型 — 6
2.2.1 変数の開放(廃棄) — 7
2.2.2 数値 — 7
2.2.2.1 最大値,最小値 — 10
2.2.2.2 浮動小数点数の丸め — 10
2.2.2.3 数学関数 — 11
2.2.2.4 特殊な値:inf, nan — 12
2.2.2.5 多倍長精度の浮動小数点数の扱い — 13
2.2.2.6 分数の扱い — 15
2.2.2.7 乱数の生成 — 17
2.2.3 文字列 — 18
2.2.3.1 エスケープシーケンス — 18
2.2.3.2 raw文字列(raw string) — 19
2.2.3.3 複数行に渡る文字列 — 19
2.2.3.4 文字列の分解と合成 — 19
2.2.3.5 文字列の置換 — 21
2.2.3.6 文字の置換 — 21
2.2.3.7 英字,数字の判定 — 21
2.2.3.8 大文字/小文字の変換と判定 — 22
2.2.3.9 文字列の含有検査 — 22
2.2.3.10 文字コード/文字の種別 — 23
2.2.4 真理値 — 25
2.2.5 ヌルオブジェクト: None — 25
2.2.6 型の変換 — 25
2.2.7 型の検査 — 26
2.2.8 基数の変換 — 26
2.2.8.1 n進数→10進数 — 26
2.2.8.2 10進数→n進数 — 27
2.2.9 ビット演算 — 27
2.3 データ構造 — 29
2.3.1 リスト — 29
2.3.1.1 リストの要素へのアクセス — 29
2.3.1.2 リストの編集 — 29
2.3.1.3 リストによるスタック,キューの実現: popメソッド — 31
2.3.1.4 リストに対する検査 — 32
2.3.1.5 例外処理 — 33
2.3.1.6 要素の個数のカウント — 34
2.3.1.7 要素の整列 (1): sortメソッド — 35
2.3.1.8 要素の整列 (2): sorted関数 — 36
2.3.1.9 要素の順序の反転 — 36
2.3.1.10 リストの複製 — 36
2.3.2 タプル — 37
2.3.2.1 特殊なタプル — 38
2.3.3 セット — 38
2.3.3.1 集合論の操作 — 39
2.3.3.2 frozenset — 40
2.3.4 辞書型 — 40
2.3.4.1 getメソッドによる辞書へのアクセス — 40
2.3.4.2 キーや値の列を取り出す方法 — 41
2.3.4.3 辞書型オブジェクトの要素数を調べる方法 — 41
2.3.4.4 リストやタプルから辞書を生成する方法 — 42
2.3.4.5 辞書の全要素を列として取り出す方法 — 42
2.3.5 添字(スライス)の高度な応用 — 42
2.3.5.1 スライスオブジェクト(参考) — 43
2.3.6 データ構造の変換 — 44
2.3.7 データ構造に沿った値の割当て — 45
2.3.7.1 データ構造の選択的な部分抽出 — 45
2.3.8 データ構造のシャッフル — 46
2.3.9 データ構造へのアクセスの速度について — 46
2.4 制御構造 — 47
2.4.1 繰り返し(1): for — 47
2.4.1.1 rangeオブジェクト — 48
2.4.1.2 for文におけるelse — 49
2.4.1.3 forを使ったデータ構造の生成(要素の内包表記) — 49
2.4.1.4 イテレータ — 50
2.4.1.5 zip関数とzipオブジェクト — 51
2.4.1.6 enumerateによるインデックス情報の付与 — 52
2.4.2 繰り返し(2): while — 53
2.4.3 繰り返しの中断とスキップ — 54
2.4.4 条件分岐 — 54
2.4.4.1 条件式 — 55
2.4.4.2 各種の「空」値に関する条件判定 — 55
2.4.4.3 is による比較 — 57
2.5 入出力 — 58
2.5.1 標準出力 — 58
2.5.1.1 出力データの書式設定 — 58
2.5.1.2 sysモジュールによる標準出力の扱い — 60
2.5.2 標準入力 — 61
2.5.2.1 sysモジュールによる標準入力の扱い — 62
2.5.3 ファイルからの入力 — 63
2.5.3.1 バイト列の扱い — 66
2.5.3.2 バイト列のコード体系を調べる方法 — 67
2.5.3.3 指定したバイト数だけ読み込む方法 — 67
2.5.3.4 ファイルの内容を一度で読み込む方法 — 67
2.5.3.5 ファイルをイテレータとして読み込む方法 — 67
2.5.4 ファイルへの出力 — 68
2.5.5 標準エラー出力 — 68
2.5.6 パス(ファイル,ディレクトリ)の扱い — 70
2.5.6.1 カレントディレクトリに関する操作 — 70
2.5.6.2 ディレクトリ内容の一覧 — 70
2.5.6.3 ファイルのサイズの取得 — 70
2.5.6.4 ファイル,ディレクトリの検査 — 71
2.5.6.5 ファイル,ディレクトリの削除 — 71
2.5.6.6 実行中のスクリプトに関する情報 — 71
2.5.6.7 パスの表現の連結 — 72
2.5.6.8 パスを扱うための更に別の方法:pathlib — 72
2.5.7 コマンド引数の取得 — 74
2.5.8 入出力処理の際に注意すること — 74
2.6 関数の定義 — 75
2.6.1 仮引数について — 75
2.6.1.1 引数の個数が不定の関数 — 75
2.6.1.2 関数呼び出し時の引数に `*’ を記述する方法 — 76
2.6.1.3 キーワード引数 — 76
2.6.2 変数のスコープ(関数定義の内外での変数の扱い) — 77
2.6.3 定義した関数の削除 — 78
2.7 オブジェクト指向プログラミング — 79
2.7.1 クラスの定義 — 79
2.7.1.1 コンストラクタ — 79
2.7.1.2 メソッドの定義 — 79
2.7.1.3 クラス変数 — 80
2.7.1.4 属性の調査 — 82
2.8 データ構造に則したプログラミング — 82
2.8.1 map関数 — 83
2.8.1.1 複数の引数を取る関数のmap — 84
2.8.1.2 map関数にzipオブジェクトを与える方法 — 85
2.8.2 lambdaと関数定義 — 85
2.8.3 filter — 87
2.8.4 3項演算子としての if~else… — 87
2.8.5 all, anyによる一括判定 — 88
2.8.6 高階関数モジュール:functools — 90
2.8.6.1 reduce — 90
3 KivyによるGUIアプリケーションの構築 — 91
3.1 Kivyの基本 — 91
3.1.1 アプリケーションプログラムの実装 — 91
3.1.2 GUI構築の考え方 — 91
3.1.2.1 Widget(ウィジェット) — 92
3.1.2.2 Layout(レイアウト) — 93
3.1.2.3 Screen(スクリーン) — 93
3.1.3 ウィンドウの扱い — 94
3.1.4 マルチタッチの無効化 — 94
3.2 基本的なGUIアプリケーション構築の方法 — 95
3.2.1 イベント処理(導入編) — 95
3.2.1.1 イベントハンドリング — 95
3.2.2 アプリケーション構築の例 — 96
3.2.3 イベント処理(コールバックの登録による方法) — 99
3.2.4 ウィジェットの登録と削除 — 100
3.2.5 アプリケーションの開始と終了のハンドリング — 101
3.3 各種ウィジェットの使い方 — 102
3.3.1 ラベル:Label — 102
3.3.1.1 リソースへのフォントの登録 — 104
3.3.2 ボタン:Button — 105
3.3.3 テキスト入力:TextInput — 105
3.3.4 チェックボックス:CheckBox — 106
3.3.5 進捗バー:ProgressBar — 106
3.3.6 スライダ:Slider — 106
3.3.7 スイッチ:Switch — 106
3.3.8 トグルボタン:ToggleButton — 106
3.3.9 画像:Image — 107
3.3.9.1 サンプルプログラム — 107
3.4 Canvasグラフィックス — 108
3.4.1 Graphicsクラス — 109
3.4.1.1 Color — 109
3.4.1.2 Line — 109
3.4.1.3 Rectangle — 109
3.4.1.4 Ellipse — 110
3.4.2 サンプルプログラム — 110
3.4.2.1 正弦関数のプロット — 110
3.4.2.2 各種図形,画像の表示 — 110
3.4.3 フレームバッファへの描画 — 112
3.4.3.1 ピクセル値の取り出し — 113
3.4.3.2 イベントから得られる座標位置 — 114
3.5 スクロールビュー(ScrollView) — 114
3.5.1 ウィジェットのサイズ設定 — 115
3.6 ウィンドウサイズを固定(リサイズを禁止)する設定 — 115
3.7 Kivy言語によるUIの構築 — 116
3.7.1 Kivy言語の基礎 — 116
3.7.1.1 サンプルプログラムを用いた説明 — 116
3.7.1.2 PythonプログラムとKvファイルの対応 — 118
3.8 時間によるイベント — 119
3.8.1 時間イベントのスケジュール — 119
3.9 GUI構築の形式 — 119
3.9.1 スクリーンの扱い: ScreenとScreenManager — 120
3.9.1.1 ScreenManager — 120
3.9.1.2 Screen — 120
3.9.2 アクションバー: ActionBar — 122
3.9.3 タブパネル: TabbedPanel — 123
3.9.4 スワイプ: Carousel — 124
4 実用的なアプリケーション開発に必要な事柄 — 126
4.1 日付と時間に関する処理 — 126
4.1.1 基本的な機能 — 126
4.1.1.1 日付,時刻の書式整形 — 127
4.1.1.2 datetimeのプロパティ — 127
4.1.2 timeモジュールの利用 — 128
4.1.2.1 時間の計測 — 128
4.1.2.2 プログラムの実行待ち — 129
4.2 文字列検索と正規表現 — 129
4.2.1 パターンの検索 — 129
4.2.1.1 正規表現を用いた検索 — 131
4.2.1.2 正規表現を用いたパターンマッチ — 132
4.2.1.3 行頭や行末でのパターンマッチ — 133
4.3 マルチスレッドとマルチプロセス — 134
4.3.1 マルチスレッド — 134
4.3.2 マルチプロセス — 135
4.3.2.1 ProcessPoolExecutor — 135
4.3.3 マルチスレッドとマルチプロセスの実行時間の比較 — 136
4.4 ジェネレータ — 137
4.4.1 ジェネレータ関数 — 137
4.4.2 ジェネレータ式 — 138
4.5 モジュール,パッケージの作成による分割プログラミング — 139
4.5.1 モジュール — 139
4.5.1.1 単体のソースファイルとしてのモジュール — 139
4.5.2 パッケージ(ディレクトリとして構成するライブラリ) — 140
4.5.2.1 モジュールの実行 — 141
4.5.3 モジュールが配置されているディレクトリの調査 — 142
4.5.4 \_\_init\_\_.pyについて — 142
4.6 ファイル内でのランダムアクセス — 144
4.6.1 ファイルのアクセス位置の指定(ファイルのシーク) — 144
4.6.2 サンプルプログラム — 144
4.7 データオブジェクトの保存と読込み: pickleモジュール — 146
4.8 バイナリデータの作成と展開: structモジュール — 148
4.8.1 バイナリデータの作成 — 148
4.8.2 バイナリデータの展開 — 148
4.8.3 バイトオーダーについて — 150
4.9 バイナリデータをテキストに変換する方法: base64モジュール — 151
4.10 execとeval — 153
4.10.1 名前空間の指定 — 153
4.10.2 eval関数 — 153
4.11 collectionsモジュール — 154
4.11.1 deque — 154
4.11.1.1 要素の追加と取り出し — 154
4.11.1.2 要素の順序の回転 — 155
4.11.2 namedtuple — 155
4.12 例外(エラー)の処理 — 156
4.12.1 例外を発生させる方法 — 157
4.13 使用されているシンボルの調査 — 158
4.14 with構文 — 159
4.15 処理環境に関する情報の取得 — 164
4.15.1 Pythonのバージョン情報の取得 — 164
4.15.2 platformモジュールの利用 — 164
4.15.3 環境変数の参照 — 165
4.16 ファイル,ディレクトリに対する操作: shutil モジュール — 167
4.16.1 ファイル,ディレクトリの複製 — 167
4.16.2 書庫ファイル(アーカイブ)の取り扱いと圧縮処理に関すること — 168
5 TCP/IPによる通信 — 169
5.1 socketモジュール — 169
5.1.1 ソケットの用意 — 169
5.1.2 サーバ側プログラムの処理 — 170
5.1.3 クライアント側プログラムの処理 — 170
5.1.4 送信と受信 — 170
5.1.5 サンプルプログラム — 170
5.2 WWWコンテンツ解析 — 172
5.2.1 requestsライブラリ — 172
5.2.1.1 リクエストの送信に関するメソッド — 172
5.2.1.2 取得したコンテンツに関するメソッド — 173
5.2.1.3 Sessionオブジェクトに基づくアスセス — 174
5.2.2 Beautiful Soupライブラリ — 174
5.2.2.1 BSにおけるHTMLコンテンツの扱い — 175
6 外部プログラムとの連携 — 177
6.1 外部プログラムを起動する方法 — 177
6.1.1 標準入出力の接続 — 177
6.1.1.1 外部プログラムの標準入力のクローズ — 180
6.1.2 非同期の入出力 — 180
6.1.3 外部プロセスとの同期(終了の待機) — 182
6.1.4 外部プログラムを起動する更に簡単な方法 — 182
7 サウンドの入出力 — 184
7.1 基礎知識 — 184
7.2 WAV形式ファイルの入出力:waveモジュール — 184
7.2.1 WAV形式ファイルのオープンとクローズ — 184
7.2.1.1 WAV形式データの各種属性について — 185
7.2.2 WAV形式ファイルからの読込み — 185
7.2.3 サンプルプログラム — 185
7.2.4 読み込んだフレームデータの扱い — 186
7.2.5 WAV形式データを出力する例 — 187
7.2.6 サウンドのデータサイズに関する注意点 — 189
7.3 サウンドの入力と再生:PyAudioライブラリ — 190
7.3.1 ストリームを介したサウンド入出力 — 190
7.3.2 WAV形式サウンドファイルの再生 — 191
7.3.2.1 サウンド再生の終了の検出 — 193
7.3.3 音声入力デバイスからの入力 — 193
A Pythonに関する情報 — 197
A.1 Pythonのインターネットサイト — 197
A.2 Pythonのインストール作業の例 — 197
A.2.1 PSF版インストールパッケージによる方法 — 197
A.2.2 Anacondaによる方法 — 198
A.3 Python起動のしくみ — 198
A.3.1 PSF版Pythonの起動 — 198
A.3.2 Anaconda Navigatorの起動 — 199
A.3.3 Anaconda Promptの起動 — 200
A.3.3.1 condaコマンドによるPython環境の管理 — 201
A.4 PIPによるライブラリ管理 — 201
A.4.1 PIPコマンドが実行できない場合の解決策 — 202
B Kivyに関する情報 — 203
B.1 Kivyのインストール作業の例 — 203
B.2 Kivy利用時のトラブルを回避するための情報 — 203
B.2.1 Kivyが使用する描画APIの設定 — 203
B.2.2 SDLについて — 204
B.3 GUIデザインツール — 204
C Tkinter:基本的なGUIツールキット — 205
C.1 基本的な扱い方 — 205
C.1.1 使用例 — 206
C.1.1.1 ウィンドウサイズ変更の可否の設定 — 207
C.1.2 ウィジェットの配置 — 207
C.2 各種のウィジェット — 209
C.2.1 チェックボタンとラジオボタン — 209
C.2.1.1 Variableクラス — 210
C.2.2 エントリー(テキストボックス)とコンボボックス — 211
C.2.2.1 プログラムの終了 — 213
C.2.3 リストボックス — 213
C.2.4 テキスト(文字編集領域)とスクロールバー — 214
C.2.5 スケール(スライダ)とプログレスバーバー — 216
C.2.5.1 Vaviableクラスのコールバック関数設定 — 217
C.3 メニューの構築 — 217
C.4 Canvasの描画 — 219
C.4.1 描画メソッド(一部) — 219
C.4.2 図形の管理 — 222
C.5 イベントハンドリング — 224
C.5.1 時間を指定した関数の実行 — 226
C.6 複数のウィンドウの表示 — 227
C.7 ディスプレイやウィンドウに関する情報の取得 — 228
C.8 メッセージボックス(messagebox) — 229
C.8.1 アプリケーション終了のハンドリング — 231
D ライブラリの取り扱いについて — 232
D.1 ライブラリの読込みに関すること — 232
D.1.1 ライブラリ読込みにおける別名の付与 — 232
D.1.2 接頭辞を省略するためのライブラリの読込み — 232
D.1.2.1 接頭辞を省略する際の注意(名前の衝突) — 233
D.2 各種ライブラリの紹介 — 234
E 対話モードを使いやすくするための工夫 — 235
E.1 警告メッセージの抑止と表示 — 235
E.2 メモリの使用状態の管理 — 236
F サンプルプログラム — 237
F.1 リスト/セット/辞書のアクセス速度の比較 — 237
F.1.1 スライスに整数のインデックスを与える形のアクセス — 237
F.1.2 メンバシップ検査に要する時間 — 238
F.2 ライブラリ使用の有無における計算速度の比較 — 241
F.3 pathlibの応用例 — 244
F.4 全てのUnicode文字の列挙 — 245
—————————————————————————

—【モジュールブックの目次】————————————————
1 画像の入出力と処理 — 1
1.1 OpenCV — 1
1.1.1 動画像の入力 — 2
1.1.2 ユーザインターフェース — 2
1.1.2.1 動画ファイルからの入力 — 3
1.1.3 フレームのファイルへの保存 — 3
1.1.4 静止画像の読込み — 4
1.1.5 色の分解と合成 — 5
1.1.6 画像の類似性の検査 — 6
1.1.6.1 AKAZE特徴量の算出 — 6
1.1.6.2 特徴量データの照合 — 6
1.1.6.3 サンプルプログラム — 7
1.2 Pillow — 9
1.2.1 画像ファイルの読込みと保存 — 9
1.2.1.1 EPSを読み込む際の解像度 — 10
1.2.2 Imageオブジェクトの新規作成 — 10
1.2.3 画像の閲覧 — 11
1.2.4 画像の編集 — 11
1.2.4.1 画像の拡大と縮小 — 11
1.2.4.2 画像の部分の取り出し — 12
1.2.4.3 画像の複製 — 12
1.2.4.4 画像の貼り付け — 12
1.2.4.5 画像の回転 — 12
1.2.5 画像処理 — 13
1.2.5.1 色の分解と合成 — 13
1.2.6 描画 — 13
1.2.7 アニメーションGIFの作成 — 15
1.2.8 Imageオブジェクトから画素の数値配列への変換 — 15
2 GUIとマルチメディア — 16
2.1 pygame — 16
2.1.1 基礎事項 — 16
2.1.1.1 Surfaceオブジェクト — 16
2.1.1.2 アプリケーションの実行ループ — 16
2.1.2 描画機能 — 18
2.1.2.1 描画のサンプルプログラム — 21
2.1.2.2 回転,拡縮のサンプルプログラム — 22
2.1.3 キーボードとマウスのハンドリング — 24
2.1.4 音声の再生 — 25
2.1.4.1 Soundオブジェクトを用いる方法 — 26
2.1.4.2 SoundオブジェクトからNumPyの配列への変換 — 27
2.1.5 スプライトの利用 — 29
2.2 Eel — 34
2.2.1 基礎事項 — 34
2.2.2 Python/JavaScriptで記述した関数の呼出し — 36
2.2.2.1 関数の戻り値について — 37
2.3 メディアデータの変換: PyDub — 38
2.3.1 音声ファイルの読込み — 38
2.3.2 音声データからNumPyの配列への変換 — 38
2.3.3 NumPyの配列から音声データへの変換 — 39
2.3.4 音声ファイルの保存 — 39
2.3.4.1 MP3形式ファイルとして保存 — 39
2.3.4.2 WAV形式ファイルとして保存 — 39
3 科学技術系 — 40
3.1 数値計算と可視化のためのライブラリ:NumPy / matplotlib — 40
3.1.1 配列オブジェクトの生成 — 40
3.1.1.1 配列の要素の型について — 41
3.1.1.2 真理値の配列 — 41
3.1.1.3 特殊な値:無限大と非数 — 41
3.1.1.4 データ列の生成(数列の生成) — 42
3.1.1.5 多次元配列の生成 — 43
3.1.1.6 配列の形状の調査 — 43
3.1.1.7 配列の要素へのアクセス — 44
3.1.1.8 スライスにデータ列を与えた場合の動作 — 45
3.1.1.9 指定した行,列へのアクセス — 45
3.1.1.10 配列形状の変形 — 45
3.1.1.11 行,列の転置 — 47
3.1.1.12 行,列の反転と回転 — 47
3.1.1.13 型の変換 — 48
3.1.2 配列の連結と繰り返し — 48
3.1.2.1 append,concatenateによる連結 — 48
3.1.2.2 hstack,vstackによる連結 — 49
3.1.2.3 tileによる配列の繰り返し — 50
3.1.3 配列の次元の拡大 — 50
3.1.3.1 newaxisオブジェクトによる方法 — 50
3.1.3.2 expand\_dimsによる方法 — 51
3.1.4 データの抽出 — 51
3.1.4.1 真理値列によるマスキング — 51
3.1.4.2 条件式による要素の抽出 — 52
3.1.4.3 論理演算子による条件式の結合 — 52
3.1.4.4 whereによる要素の抽出と置換 — 52
3.1.4.5 最大値,最小値,その位置の探索 — 53
3.1.5 データの整列(ソート) — 53
3.1.5.1 2次元配列の整列 — 54
3.1.5.2 整列結果のインデックスを取得する方法 — 54
3.1.6 配列に対する様々な処理 — 55
3.1.6.1 重複する要素の排除 — 55
3.1.6.2 整数要素の集計 — 55
3.1.7 データ列に対する演算:1次元から1次元 — 56
3.1.8 データの可視化(基本) — 56
3.1.8.1 作図処理の基本的な手順 — 57
3.1.8.2 2次元のプロット:折れ線グラフ — 57
3.1.8.3 複数のグラフの作成 — 59
3.1.8.4 matplotlibのグラフの構造 — 62
3.1.8.5 日本語の見出し・ラベルの表示 — 66
3.1.8.6 グラフを画像ファイルとして保存する方法 — 67
3.1.9 乱数の生成 — 68
3.1.9.1 一様乱数の生成 — 68
3.1.9.2 整数の乱数の生成 — 68
3.1.9.3 正規乱数の生成 — 68
3.1.9.4 乱数のseedについて — 68
3.1.9.5 RandomStateオブジェクト — 69
3.1.10 統計に関する処理 — 70
3.1.10.1 合計 — 70
3.1.10.2 最大値,最小値 — 70
3.1.10.3 平均,分散,標準偏差 — 70
3.1.10.4 パーセント点 — 71
3.1.10.5 区間と集計(階級と度数調査) — 71
3.1.10.6 データのシャッフル — 72
3.1.11 データの可視化(2) — 73
3.1.11.1 ヒストグラム — 73
3.1.11.2 散布図 — 73
3.1.11.3 棒グラフ — 74
3.1.11.4 箱ひげ図 — 74
3.1.12 データ列に対する演算:\(n\)次元から1次元 — 75
3.1.13 データの可視化:3次元プロット — 76
3.1.13.1 ワイヤフレーム — 76
3.1.13.2 面プロット(surface plot) — 77
3.1.13.3 3次元の散布図 — 78
3.1.14 データの可視化:その他 — 79
3.1.14.1 ヒートマップ — 79
3.1.14.2 表の作成 — 81
3.1.15 高速フーリエ変換(FFT) — 83
3.1.15.1 時間領域から周波数領域への変換:フーリエ変換 — 83
3.1.15.2 周波数領域から時間領域への変換:フーリエ変逆換 — 83
3.1.15.3 プロットのアスペクト比の指定 — 86
3.1.15.4 フーリエ変換を使用する際の注意 — 87
3.1.16 複素数の計算 — 87
3.1.16.1 複素数の平方根 — 87
3.1.16.2 複素数のノルム — 87
3.1.16.3 共役複素数 — 87
3.1.16.4 複素数の偏角(位相) — 88
3.1.17 行列の計算 — 89
3.1.17.1 行列の和と積 — 89
3.1.17.2 単位行列,ゼロ行列,他 — 89
3.1.17.3 行列の要素を全て同じ値にする — 89
3.1.17.4 対角成分,対角行列 — 90
3.1.17.5 行列の転置 — 91
3.1.17.6 行列式と逆行列 — 91
3.1.17.7 固有値と固有ベクトル — 91
3.1.17.8 行列のランク — 92
3.1.17.9 複素共役行列 — 92
3.1.17.10 エルミート共役行列 — 92
3.1.17.11 ベクトルのノルム — 93
3.1.18 入出力:配列オブジェクトのファイルI/O — 94
3.1.18.1 テキストファイルへの保存 — 94
3.1.18.2 テキストファイルからの読み込み — 94
3.1.18.3 バイナリファイルへのI/O — 95
3.1.18.4 データの圧縮保存と読み込み — 95
3.1.19 行列の比較 — 96
3.1.20 配列を処理するユーザ定義関数の実装について — 96
3.1.21 行列の計算を応用した計算速度の改善の例 — 98
3.1.22 画像データの扱い — 99
3.1.22.1 画素の配列から画像データへの変換(PILライブラリとの連携) — 100
3.1.22.2 画像データから画素の配列への変換(PILライブラリとの連携) — 101
3.1.22.3 サンプルプログラム:画像の三色分解 — 101
3.1.23 その他の機能 — 103
3.1.23.1 基準以上/以下のデータの抽出 — 103
3.1.23.2 指定した範囲のデータの抽出 — 104
3.2 科学技術計算用ライブラリ: SciPy — 107
3.2.1 信号処理ツール: scipy.signal — 107
3.2.1.1 基本的な波形の生成 — 107
3.3 数式処理ライブラリ: SymPy — 111
3.3.1 モジュールの読込みに関する注意 — 111
3.3.2 基礎事項 — 111
3.3.2.1 数式処理のためのオブジェクト — 112
3.3.2.2 数式の簡単化(評価) — 112
3.3.2.3 式 {\tt f(x,y,…)  の構造 (頭部と引数列の取り出し) — 113
3.3.2.4 定数 — 113
3.3.3 基本的な数式処理機能 — 114
3.3.3.1 式の展開 — 114
3.3.3.2 因数分解 — 114
3.3.3.3 指定した記号による整理 — 114
3.3.3.4 約分:分数の簡単化(1) — 115
3.3.3.5 部分分数 — 115
3.3.3.6 分数の簡単化(2) — 116
3.3.3.7 代入(記号の置換) — 116
3.3.3.8 各種の数学関数 — 116
3.3.3.9 式の型 — 116
3.3.4 解析学的処理 — 117
3.3.4.1 極限 — 117
3.3.4.2 導関数 — 117
3.3.4.3 微分操作の遅延実行 — 118
3.3.4.4 原始関数 — 118
3.3.4.5 integrateの遅延実行 — 118
3.3.4.6 定積分 — 119
3.3.4.7 級数展開 — 119
3.3.5 各種方程式の求解 — 119
3.3.5.1 代数方程式の求解 — 119
3.3.5.2 微分方程式の求解 — 120
3.3.5.3 階差方程式の求解(差分方程式,漸化式) — 121
3.3.6 線形代数 — 121
3.3.6.1 行列式 — 121
3.3.6.2 逆行列 — 121
3.3.6.3 固有値,固有ベクトル — 122
3.3.7 総和 — 122
3.3.8 パターンマッチ — 123
3.3.9 数値計算 — 124
3.3.9.1 素因数分解 — 124
3.3.9.2 近似値 — 124
3.3.10 書式の変換出力 — 124
3.3.10.1 LaTeX  — 124
3.3.11 グラフのプロット — 124
3.3.11.1 グラフを画像ファイルに保存する方法 — 126
4 セキュリティ関連 — 127
4.1 hashlib — 127
4.1.1 基本的な使用方法 — 127
4.2 passlib — 127
4.2.1 使用できるアルゴリズム — 127
5 プログラムの高速化/アプリケーション構築 — 129
5.1 Cython — 129
5.1.1 使用例 — 129
5.1.2 高速化のための調整 — 131
5.2 Numba — 132
5.2.1 基本的な使用方法 — 132
5.2.2 型指定による高速化 — 133
5.3 ctypes — 133
5.3.1 C言語による共有ライブラリ作成の例 — 134
5.3.2 共有ライブラリ内の関数を呼び出す例 — 134
5.3.3 引数と戻り値の扱いについて — 135
5.3.3.1 配列データの受け渡し — 137
5.4 PyInstaller — 140
5.4.1 簡単な使用例 — 140
5.4.1.1 単一の実行ファイルとしてビルドする方法 — 141
6 対話作業環境(JupyterLab) — 142
6.1 基礎事項 — 142
6.1.1 起動と終了 — 143
6.1.2 表示領域の構成と操作方法 — 143
6.1.2.1 ノートブックの使用例 — 144
6.1.2.2 カーネル(Kernel)について — 146
6.1.3 Notebookでのinput関数の実行 — 146
6.2 Markdownによるコメント表示 — 147
6.3 使用例 — 148
6.3.1 MathJaxによるSymPyの式の整形表示 — 148
6.3.2 IPython.displayモジュールによるサウンドの再生 — 149
7 その他 — 151
7.1 json:データ交換フォーマットJSONの使用 — 151
7.1.1 JSONの表記 — 151
7.1.2 使用例 — 151
7.2 urllib:URLに関する処理 — 152
7.2.1 他バイト文字の扱い(`\%’エンコーディング) — 152
7.2.1.1 文字コード系の指定 — 152
7.3 zenhan:全角⇔半角変換 — 153
7.4 jaconv:日本語文字に関する各種の変換 — 153
—————————————————————————

コメントを残す

メールアドレスが公開されることはありません。

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)