Python高性能プログラミングPDFダウンロード



Python High Performance Programming Pdf Download



クリックしてダウンロード:
Python高性能プログラミングPDFダウンロード
画像
前書き ・ ・ ・ ・ ・ ・
この本には、コードを最適化し、アプリケーションを高速化する方法をカバーする12の章があります。この本は、次のトピックをカバーしています:内部コンピューター構造、リストとタプル、辞書とコレクション、イテレーターとジェネレーター、マトリックスとベクトルの計算、並行性、クラスタリング、および作業キューの背景知識。最後に、一連の実際の事例を通じて、アプリケーションシナリオで注意を払う必要のある問題を示します。
この本は、初心者および中級のPythonプログラマー向けであり、高度で改善された読書を得るための特定のPython言語の基盤があります。
著者について ・ ・ ・ ・ ・ ・
Micha Gorelickはデータに少しずつ取り組んでおり、確立する責任があります
Fast Forward Labs、機械学習から高レベルまで学習
エネルギーフローアルゴリズムの分野における問題。

Ian Ozsvaldは、ModelInsight.ioのデータサイエンティスト兼教師であり、10人以上います。
Pythonの経験年。彼はPyConとPyDataの会議でPythonプログラミングを教えています。
英国では、データサイエンスとハイパフォーマンスコンピューティングのコンサルタントとして数年間働いています。

内容················································
ディレクトリ



第1章高性能Pythonを理解する1
1.1基本的なコンピュータシステム1
1.1.1計算単位2
1.1.2ストレージユニット5
1.1.3通信レイヤー6
1.2基本要素の組み立て8
1.3 Python12を使用する理由
第2章パフォーマンス分析によるボトルネックの発見15
2.1パフォーマンスの効率的な分析16
2.2Juliaコレクションの概要17
2.3完全なJuliaコレクションの計算20
2.4時間を計る簡単な方法-印刷とレタッチ24
2.5UNIX時間コマンドを使用した単純なタイミング27
2.6cProfileモジュールの使用28
2.7 runsnakerun33を使用してcProfileの出力を視覚化する
2.8 line_profiler34を使用した行ごとの分析
2.9memory_profilerを使用したメモリ使用量の診断39
2.10ヒープを使用してヒープ上のオブジェクトを調査する45
2.11ダウザーを使用して変数の例をリアルタイムで描画する47
2.12disモジュール49を使用したCPythonバイトコードの確認
2.13コードを正しく保つための最適化中のユニットテスト53
2.14パフォーマンス分析を成功させるための戦略56
2.15まとめ57
第3章リストとタプル58
3.1より効率的な検索61
3.2リストとタプル63
3.2.1動的配列:リスト64
3.2.2静的配列:タプル67
3.3まとめ68
第4章辞書とコレクション69
4.1辞書とコレクションのしくみ72
4.1.1挿入して73を取得
4.1.2削除76
4.1.3サイズ変更76
4.1.4ハッシュ関数とエントロピー76
4.2辞書と名前空間80
4.3まとめ83
第5章イテレータとジェネレータ84
5.1無限シーケンスのイテレータ87
5.2発電機遅延の推定89
5.3まとめ93
第6章行列とベクトルの計算94
6.1問題の概要95
6.2 Pythonリストは十分ではありませんか? 99
6.3メモリの断片化103
6.3.1パフォーマンス105を理解する
6.3.2パフォーマンス出力106に基づいて決定を下す
6.3.3 numpy107の使用
6.4 numpy110で増殖の問題を解決する
6.4.1メモリ割り当てとローカル操作113
6.4.2最適化ポイントの選択:修正が必要な場所の検索116
6.5 numexpr:ローカル操作をより速く簡単にします120
6.6ストーリーを伝える:Scipy121を確認する
6.7まとめ123
第7章C126へのコンパイル
7.1どのようなタイプの速度向上が利用できる可能性があるか127
7.2JITコンパイラとAOTコンパイラの比較129
7.3型チェックがコードの高速実行に役立つ理由129
7.4Cコンパイラの使用130
7.5ジュリア集合の例131の確認
7.6 Cython 131
7.6.1 Cython132を使用した純粋なPythonバージョンのコンパイル
7.6.2コードブロックを分析するためのCythonアノテーション134
7.6.3いくつかの型注釈を追加する136
7.7シェッドスキン140
7.7.1拡張モジュールの構築141
7.7.2メモリコピーオーバーヘッド144
7.8Cythonとnumpy144
7.9 Numba 148
7.10ピスラン149
7.11 PyPy 151
7.11.1ガベージコレクションの違い152
7.11.2PyPyの実行とモジュールのインストール152
7.12各ツールをいつ使用するか154
7.12.1その他の今後のプロジェクト155
7.12.2画像処理装置(GPU)の注意点156
7.12.3将来のコンパイラプロジェクトのビジョン157
7.13外部機能インターフェース157
7.13.1 ctypes 158
7.13.2カフェ160
7.13.3 f2py 163
7.13.4CPythonモジュール166
7.14まとめ170
第8章並行性171
8.1非同期プログラミングの概要172
8.2シリアルクローラー175
8.3ベント177
8.4竜巻182
8.5 AsyncIO 185
8.6データベースの例188
8.7まとめ191
第9章マルチプロセッシングモジュール193
9.1マルチプロセッシングモジュールの概要196
9.2モンテカルロ法を使用したPi198の推定
9.3マルチプロセスおよびマルチスレッドを使用したPi199の見積もり
9.3.1Pythonオブジェクトの使用200
9.3.2並列システムの乱数207
9.3.3 numpy207の使用
9.4素数を見つける210
9.5プロセス間通信を使用した素数の検証221
9.5.1シリアルソリューション225
9.5.2ナイーブプールソリューション225
9.5.3ナイーブなプールソリューションが少ない226
9.5.4Manager.Valueをタグとして使用する227
9.5.5Redisをタグとして使用する229
9.5.6RawValueをタグとして使用する232
9.5.7タグとしてmmapを使用する232
9.5.8タグの究極の効果としてmmapを使用する234
9.6マルチプロセッシングを使用したnumpyデータの共有236
9.7ファイルと変数アクセスの同期243
9.7.1ファイルロック243
9.7.2ロック値247
9.8まとめ249
第10章クラスターとワークキュー251
10.1クラスタリングの利点252
10.2クラスターの欠陥253
10.2.1不良クラスターのアップグレード戦略により、ウォール街は4億6200万ドルを失った254
10.2.2Skypeの24時間のグローバル停止255
10.3ユニバーサルクラスター設計255
10.4クラスター化されたソリューションを開始する方法256
10.5クラスターを使用する際の痛みを回避する方法257
10.63つのクラスタリングソリューション258
10.6.1単純なローカルクラスターでの並列Pythonモジュールの使用259
10.6.2 IPythonParallelを使用したResearch260のサポート
堅牢な本番クラスター用の10.7NSQ 265
10.7.1キュー265
10.7.2パブリッシャー/サブスクライバー266
10.7.3分散素数計算機268
10.8他のクラスタリングツールを見てください271
10.9まとめ272
第11章RAMの使用量を減らす273
11.1基本型のオブジェクト型が高い274
11.2コレクションのRAM使用量を理解する278
11.3バイトとUnicode280
11.4RAMに多くのテキストを効率的に保存する281
11.5より少ないRAMを使用するためのヒント290
11.6確率的データ構造291
11.6.1おおよそのカウントに1バイトのMorrisカウンターを使用する292
11.6.2K最小295
11.6.3ブルームフィルター298
11.6.4LogLogカウンター303
11.6.5実例307
第12章現場でのレッスン311
12.1アダプティブラボのソーシャルメディア分析(SoMA)311
12.1.1 AdaptiveLab用のPython312
12.1.2 SoMA312の設計
12.1.3当社の開発方法論313
12.1.4 SoMA313の保守
12.1.5エンジニアへのアドバイス313
12.2 RadimRehurek.com314でディープラーニングを飛ばしましょう
12.2.1最適なタイミング314
12.2.2最適化からの教訓316
12.2.3まとめ318
12.3Lyst.comでの大量生産された機械学習318
12.3.1 Lyst319におけるPythonの位置
12.3.2クラスター設計319
12.3.3動きの速いスタートアップでのコード評価319
12.3.4レコメンデーションエンジンの構築319
12.3.5レポートと監視320
12.3.6いくつかの提案320
12.4 Smesh321での大規模なソーシャルメディア分析
12.4.1 Smesh321でのPythonの役割
12.4.2プラットフォーム321
12.4.3高性能のリアルタイム文字列照合322
12.4.4レポート、監視、デバッグ、および展開323
12.5 PyPyは、成功したWebおよびデータ処理システムにつながりました324
12.5.1前提条件325
12.5.2データベース325
12.5.3Webアプリケーション326
12.5.4OCRと翻訳326
12.5.5タスクの分散とワーカー327
12.5.6結論327
12.6Lanyrd.comのタスクキュー327
12.6.1 Lanyrd328でのPythonの役割
12.6.2タスクキューのパフォーマンスを向上させる328
12.6.3レポート、監視、デバッグ、および展開328
12.6.4開発者への提案329