NumPy攻略

內容介紹

本書帶領讀者了解熟悉當下最流行的科學計算庫NumPy的方方面面。書中不僅介紹了NumPy的安裝、使用和各種相關概念,還介紹了如何利用這一最新的開源軟體庫,以儘可能接近傳統數學語言的方式,編寫可讀性好、實現效率高和運行速度快的代碼。最後還探究了幾個和NumPy相關的科學計算項目。此外,本書將為你掌握NumPy數組和通用函式打下堅實的基礎,也會通過實例教你用Matplotlib繪圖,並了解和SciPy相關的項目。
本書將幫助你:
? 學習高級索引技術和線性代數知識
? 了解數組形狀及圖像大小的調整
? 探察廣播機制和直方圖
? 分析NumPy代碼並用可視化的方式表示分析結果
? 用Cython為代碼提速
? 使用數組接口共享數據
? 使用通用函式和互操作功能
? 學習Matplotlib以及經常和NumPy同時使用的SciPy

作者介紹

作者簡介:
Ivan Idris
實驗物理學碩士。先後任職於多家公司,從事Java開發、數據倉庫開發和QA分析等工作。主要的興趣是商業智慧型、大數據和雲計算,喜歡編寫整潔、可測試的代碼,以及撰寫有趣的技術文章。另著有NumPy Beginner's Guide和Instant Pygame for Python Game Development How-to等書。可以訪問ivanidris.net獲取更多信息。
譯者簡介:
張崇明
本科及研究生畢業於天津大學精密儀器與光電子工程學院,博士畢業於復旦大學計算機科學技術學院。在中興通訊南京研發中心做過三年通信軟體的開發。目前在上海師範大學信息與機電工程學院從事教學和科研工作。

作品目錄

目 錄
第1章 使用IPython1
1.1  引言1
1.2  安裝IPython2
1.2.1  具體步驟2
1.2.2  攻略小結3
1.3  使用IPython的shell4
1.3.1  具體步驟4
1.3.2  攻略小結6
1.4  閱讀手冊頁6
1.4.1  具體步驟6
1.4.2  攻略小結6
1.5  安裝Matplotlib7
1.6  運行基於Web的notebook8
1.6.1  準備工作8
1.6.2  具體步驟8
1.6.3  攻略小結10
1.6.4  參考閱讀10
1.7  導出基於Web的notebook10
1.8  導入基於Web的notebook12
1.9  配置notebook伺服器14
1.9.1  具體步驟15
1.9.2  攻略小結16
1.10  初探SymPy配置17
1.10.1  準備工作17
1.10.2  具體步驟17
第2章 高級索引和數組概念19
2.1  引言19
2.2  安裝SciPy20
2.2.1  準備工作20
2.2.2  具體步驟20
2.2.3  攻略小結21
2.3  安裝PIL22
2.4  調整圖像大小22
2.4.1  準備工作23
2.4.2  具體步驟23
2.4.3  攻略小結25
2.4.4  參考閱讀25
2.5  創建視圖和副本25
2.5.1  準備工作25
2.5.2  具體步驟26
2.5.3  攻略小結27
2.6  翻轉圖像27
2.6.1  具體步驟27
2.6.2  參考閱讀29
2.7  高級索引29
2.7.1  具體步驟29
2.7.2  攻略小結31
2.8  位置列表型索引31
2.9  布爾型索引32
2.9.1  具體步驟33
2.9.2  攻略小結34
2.9.3  參考閱讀34
2.10  數獨遊戲中的跨度技巧34
2.10.1  具體步驟35
2.10.2  攻略小結37
2.11  用廣播機制擴展數組37
第3章 常用函式40
3.1  引言40
3.2  斐波那契數列求和41
3.2.1  具體步驟41
3.2.2  攻略小結44
3.2.3  參考閱讀44
3.3  尋找質因數44
3.3.1  具體步驟44
3.3.2  攻略小結46
3.4  尋找迴文數46
3.4.1  具體步驟46
3.4.2  攻略小結48
3.4.3  更多工作48
3.5  確定穩態向量48
3.5.1  具體步驟48
3.5.2  攻略小結52
3.5.3  參考閱讀53
3.6  發現冪律分布53
3.6.1  具體步驟53
3.6.2  攻略小結55
3.6.3  參考閱讀55
3.7  定期在低點做交易55
3.7.1  準備工作56
3.7.2  具體步驟56
3.7.3  攻略小結58
3.7.4  參考閱讀58
3.8  模擬在隨機時間點做交易59
3.8.1  準備工作59
3.8.2  具體步驟59
3.8.3  攻略小結61
3.8.4  參考閱讀61
3.9  用埃氏篩篩選整數61
第4章 NumPy與其他軟體的互動63
4.1  引言63
4.2  使用緩衝區協定64
4.2.1  準備工作64
4.2.2  具體步驟64
4.2.3  攻略小結66
4.2.4  參考閱讀66
4.3  使用數組接口66
4.3.1  準備工作66
4.3.2  具體步驟66
4.3.3  攻略小結67
4.3.4  參考閱讀68
4.4  與MATLAB和Octave交換數據68
4.4.1  準備工作68
4.4.2  具體步驟68
4.4.3  參考閱讀69
4.5  安裝RPy269
4.6  連線到R69
4.6.1  準備工作70
4.6.2  具體步驟70
4.6.3  參考閱讀71
4.7  安裝JPype71
4.8  傳遞NumPy數組到JPype71
4.8.1  具體步驟72
4.8.2  攻略小結73
4.8.3  參考閱讀73
4.9  安裝谷歌應用程式引擎73
4.10  在谷歌雲中部署NumPy代碼74
4.10.1  具體步驟75
4.10.2  攻略小結76
4.11  在Python Anywhere的Web控制台中運行NumPy代碼76
4.11.1  具體步驟77
4.11.2  攻略小結78
4.12  設定PiCloud78
4.12.1  具體步驟79
4.12.2  攻略小結80
第5章 聲音和圖像處理81
5.1  引言81
5.2  載入圖像到記憶體映射區81
5.2.1  準備工作82
5.2.2  具體步驟82
5.2.3  攻略小結85
5.2.4  參考閱讀85
5.3  合併圖像85
5.3.1  準備工作85
5.3.2  具體步驟86
5.3.3  攻略小結88
5.3.4  參考閱讀88
5.4  圖像的模糊化處理89
5.4.1  具體步驟89
5.4.2  攻略小結91
5.5  複製聲音片段91
5.5.1  具體步驟91
5.5.2  攻略小結93
5.6  合成聲音94
5.6.1  具體步驟94
5.6.2  攻略小結96
5.7  設計音頻濾波器96
5.7.1  具體步驟97
5.7.2  攻略小結99
5.8  用索貝爾濾波器進行邊緣檢測99
5.8.1  具體步驟99
5.8.2  攻略小結101
第6章 特殊類型數組與通用函式102
6.1  引言102
6.2  創建一個通用函式102
6.2.1  具體步驟102
6.2.2  攻略小結103
6.3  尋找勾股數103
6.3.1  具體步驟103
6.3.2  攻略小結105
6.4  用chararray做字元串操作105
6.4.1  具體步驟105
6.4.2  攻略小結106
6.5  創建一個masked類型的數組106
6.5.1  具體步驟106
6.5.2  攻略小結108
6.6  忽略負值和極值108
6.6.1  具體步驟108
6.6.2  攻略小結111
6.7  用recarray創建評分表111
6.7.1  具體步驟112
6.7.2  攻略小結114
第7章 性能分析與調試115
7.1  引言115
7.2  用timeit進行性能分析115
7.2.1  具體步驟115
7.2.2  攻略小結118
7.3  用IPython進行性能分析118
7.3.1  具體步驟118
7.3.2  攻略小結120
7.4  安裝line_profiler120
7.4.1  準備工作120
7.4.2  具體步驟120
7.4.3  參考閱讀121
7.5  用line_profiler分析代碼121
7.5.1  具體步驟121
7.5.2  攻略小結122
7.6  用cProfile擴展模組分析代碼122
7.7  用IPython進行調試123
7.7.1  具體步驟124
7.7.2  攻略小結125
7.8  用pudb進行調試126
第8章 質量保證127
8.1  引言127
8.2  安裝Pyflakes127
8.2.1  準備工作127
8.2.2  具體步驟128
8.3  用Pyflakes進行靜態分析128
8.3.1  具體步驟128
8.3.2  攻略小結129
8.4  用Pylint分析代碼129
8.4.1  準備工作129
8.4.2  具體步驟130
8.4.3  攻略小結130
8.4.4  參考閱讀131
8.5  用Pychecker進行靜態分析131
8.6  用docstrings測試代碼132
8.6.1  具體步驟132
8.6.2  攻略小結134
8.7  編寫單元測試134
8.7.1  具體步驟134
8.7.2  攻略小結136
8.8  用模擬對象測試代碼137
8.8.1  具體步驟137
8.8.2  攻略小結139
8.9  基於BDD方式的測試139
8.9.1  具體步驟139
8.9.2  攻略小結141
第9章 用Cython為代碼提速142
9.1  引言142
9.2  安裝Cython142
9.3  構建Hello World程式143
9.3.1  具體步驟143
9.3.2  攻略小結144
9.4  在Cython中使用NumPy144
9.4.1  具體步驟145
9.4.2  攻略小結146
9.5  調用C語言函式146
9.5.1  具體步驟146
9.5.2  攻略小結148
9.6  分析Cython代碼148
9.6.1  具體步驟148
9.6.2  攻略小結150
9.7  用Cython求階乘的近似值150
9.7.1  具體步驟150
9.7.2  攻略小結152
第10章 有趣的Scikits153
10.1  引言153
10.2  安裝scikits-learn154
10.2.1  準備工作154
10.2.2  具體步驟154
10.3  載入範例數據集155
10.4  用scikits-learn對道瓊斯成分股做聚類分析155
10.4.1  具體步驟156
10.4.2  攻略小結158
10.5  安裝scikits-statsmodels158
10.6  用scikits-statsmodels做正態性檢驗159
10.6.1  具體步驟159
10.6.2  攻略小結160
10.7  安裝scikits-image160
10.8  檢測角點160
10.8.1  準備工作161
10.8.2  具體步驟161
10.8.3  攻略小結162
10.9  檢測邊緣162
10.10  安裝Pandas163
10.11  用Pandas估計股票收益的相關性164
10.11.1  具體步驟164
10.11.2  攻略小結166
10.12  從statsmodels載入數據到pandas對象166
10.12.1  準備工作166
10.12.2  具體步驟167
10.12.3  攻略小結168
10.13  重採樣時間序列數據169
10.13.1  具體步驟169
10.13.2  攻略小結171
索引172

相關詞條

熱門詞條

聯絡我們