Python物理學高效計算
本書講什么
本書目標讀者
本書不適合哪些人
本書使用示例:輻射衰變常數
訪問數據和軟件庫
創建一個簡單的程序
自動化數據收集
分析和繪制數據
跟蹤改動
測試代碼
為代碼提供文檔
發布
閱讀本書時應該做哪些事情
本書約定
使用實例代碼
安裝和設置
第1步:安裝和下載Miniconda(或Anaconda)
第2步:安裝軟件包
Safari® 在線圖書
聯系方式
第1部分 起步
1 命令行簡介
1.1 Shell概覽
1.1.1 Shell是一款編程語言
1.1.2 路徑和pwd
1.1.3 主目錄(~)
1.1.4 列出內容(ls)
1.1.5 更改目錄(cd)
1.1.6 查看文件內容(head和tail命令)
1.2 操作文件和目錄
1.2.1 創建文件(nano、emacs、vi、cat、>和touch)
1.2.2 復制和重命名文件(cp和mv)
1.2.3 創建目錄(mkdir)
1.2.4 刪除文件和目錄(rm)
1.2.5 標志和通配符
1.3 獲取幫助
1.3.1 閱讀程序手冊(man)
1.3.2 找到正確的工具(apropos)
1.3.3 用重定向和管道組合多個實用程序(>、>>和|)
1.4 權限和共享
1.4.1 查看權限(ls –l)
1.4.2 設置所有權
1.4.3 設置權限(chmod)
1.4.4 創建鏈接(ln)
1.4.5 連接其他計算機(ssh和scp)
1.5 環境
1.5.1 保存環境變量(.bashrc)
1.5.2 運行程序(PATH)
1.5.3 別名命令(alias)
1.6 使用bash編寫腳本
1.7 本章小結
2 Python編程起步
2.1 運行Python
2.2 注釋
2.3 變量
2.4 特殊變量
2.4.1 布爾值
2.4.2 None不是0!
2.4.3 NotImplemented不是None!
2.5 操作符
2.6 字符串
2.6.1 字符串索引
2.6.2 字符串連接
2.6.3 字符串字面值
2.6.4 字符串方法
2.7 模塊
2.7.1 導入模塊
2.7.2 從模塊中導入變量
2.7.3 別名導入
2.7.4 導入變量別名
2.7.5 包
2.7.6 標准庫和Python生態系統
2.8 本章小結
3 基本容器
3.1 列表
3.2 元組
3.3 集合
3.4 字典
3.5 本章小結
4 流程控制和邏輯運算
4.1 條件語句
4.1.1 if-else語句
4.1.2 if-elif-else語句
4.1.3 if-else表達式
4.2 異常
拋出異常
4.3 循環
4.3.1 while循環
4.3.2 for循環
4.3.3 解析式
4.4 本章小結
5 使用函數
5.1 Python中的函數
5.2 關鍵字參數
5.3 變長參數
5.4 多返回值
5.5 作用域
5.6 遞歸
5.7 lambda
5.8 生成器
5.9 裝飾器
5.10 本章小結
6 類和對象
6.1 面向對象
6.2 對象
6.3 類
6.3.1 類變量
6.3.2 實例變量
6.3.3 構造器
6.3.4 方法
6.3.5 靜態方法
6.3.6 鴨子類型
6.3.7 多態
6.4 裝飾器和元類
6.5 本章小結
第2 部分 上手
7 分析和可視化
7.1 准備數據
7.1.1 實驗數據
7.1.2 模擬數據
7.1.3 元數據
7.2 載入數據
7.2.1 NumPy
7.2.2 PyTables
7.2.3 Pandas
7.2.4 Blaze
7.3 清理和改寫數據
缺失的數據
7.4 分析
7.4.1 模型驅動的分析
7.4.2 數據驅動的分析
7.5 可視化
7.5.1 可視化工具
7.5.2 gnuplot
7.5.3 matplotlib
7.5.4 Bokeh
7.5.5 Inkscape
7.6 本章小結
8 正則表達式
8.1 示例:雜亂的磁性
8.2 命令行中的元字符
8.2.1 用簡單的模式列出文件
8.2.2 根據模式全局查找文件名(find)
8.3 grep、sed、awk
8.4 在文件中查找模式(grep)
8.5 在文件中查找和替換(sed)
8.5.1 查找和替換復雜模式
8.5.2 sed額外內容
8.6 處理數據列(awk)
8.7 Python正則表達式
8.8 本章小結
9 NumPy:以數組的形式思考
9.1 數組
9.2 dtype
9.3 切片和視圖
9.4 算術和廣播
9.5 花式索引
9.6 掩模
9.7 結構數組
9.8 通用函數
9.9 其他有用的函數
9.10 本章小結
10 數據存儲:文件和HDF5
10.1 Python中的文件
10.2 關於計算機架構的一些說明
10.3 HDF5中的重要思想
10.4 文件處理
10.5 層次布局
10.6 分塊
10.7 核內和核外操作
10.7.1 核內
10.7.2 核外
10.8 查詢
10.9 壓縮
10.10 HDF5工具
10.11 本章小結
11 物理中重要的數據結構
11.1 散列表
11.1.1 調整大小
11.1.2 沖突
11.2 數據框
11.2.1 Series
11.2.2 DataFrame結構
11.3 B樹
11.4 k-d樹
11.5 本章小結
12 並行化執行
12.1 規模和擴展能力
12.2 問題分類
12.3 示例:N體問題
12.4 非並行
12.5 線程
12.6 多處理
12.7 MPI
12.8 本章小結
13 軟件部署
13.1 部署軟件本身
13.1.1 pip
13.1.2 Conda
13.1.3 虛擬機
13.1.4 Docker
13.2 部署到雲端
13.3 在超算上部署
13.4 本章小結
第3部分 完善
14 構建流程和軟件
14.1 make
14.1.1 運行make
14.1.2 makefile
14.1.3 目標
14.1.4 特殊目標
14.2 構建和運行軟件
14.2.1 Makefile配置
14.2.2 編譯
14.3 安裝
14.4 本章小結
15 本地版本控制
15.1 什么是版本控制
15.1.1 計算物理中的實驗室筆記本
15.1.2 版本控制工具的類型
15.2 Git起步
15.2.1 安裝Git
15.2.2 獲取幫助
15.2.3 控制Git的行為(git config)
15.3 使用Git進行本地版本控制
15.3.1 創建本地庫(git init)
15.3.2 暫存文件
15.3.3 檢查本地副本的狀態(git status)
15.3.4 保存快照(git commit)
15.3.5 git log:查看歷史
15.3.6 查看改動(git diff)
15.3.7 取消暫存或回滾文件(git reset)
15.3.8 丟棄提交(git revert)
15.3.9 列出、創建、刪除分支(git branch)
15.3.10 切換分支(git checkout)
15.3.11 合並分支(git merge)
15.3.12 處理沖突
15.4 本章小結
16 遠程版本控制
16.1 代碼托管(github.com)
16.2 在GitHub上創建代碼庫
16.3 聲明遠程庫(git remote)
16.4 向遠程庫發送提交(git push)
16.5 下載代碼庫(git clone)
16.6 從遠程庫獲取內容(git fetch)
16.7 合並遠程庫的內容(git merge)
16.8 Pull等於Fetch加Merge (git pull)
16.9 沖突
16.10 解決沖突
16.11 本章小結
17 調試
17.1 遇到一個錯誤
17.2 print語句
17.3 交互式調試
17.4 在Pythong中調試(pdb)
17.4.1 設置跟蹤點
17.4.2 步進
17.4.3 查詢變量
17.4.4 設置狀態
17.4.5 運行函數和方法
17.4.6 繼續執行
17.4.7 斷點
17.5 剖析
17.5.1 使用pstats查看剖析文件
17.5.2 可視化查看剖析信息
17.5.3 使用Kernprof剖析代碼
17.6 linting
17.7 本章小結
18 測試
18.1 為什么要做測試
18.2 什么情況下要寫測試
18.3 在哪里編寫測試
18.4 如何測試?測試哪些內容
18.5 運行測試
18.6 邊界情形
極端條件
18.7 單元測試
18.8 集成測試
18.9 回歸測試
18.10 測試生成器
18.11 測試覆蓋
18.12 測試驅動開發
18.13 本章小結
第4部分 發布
19 文檔
19.1 為什么文檔很重要
19.1.1 文檔非常有價值
19.1.2 編寫文檔比想象的要簡單
19.2 文檔類型
19.2.1 理論手冊
19.2.2 用戶和開發者指南
19.2.3 readme文件
19.2.4注釋
19.2.5 自文檔代碼
19.2.6 文檔字符串
19.3 自動化
19.4 本章小結
20 出版
20.1 文檔處理
20.1.1 格式和內容分離
20.1.2 跟蹤改動
20.2 文本編輯器
20.3 標記語言
20.3.1 LaTeX
20.3.2 參考文獻
20.4 本章小結
21 協作
21.1 任務單系統
21.1.1 工作流程概覽
21.1.2 創建問題
21.1.3 分配問題
21.1.4 討論問題
21.1.5 關閉問題
21.2 拉取請求和代碼審查
21.2.1 提交拉取請求
21.2.2 審查合並請求
21.2.3 合並拉取請求
21.3 本章小結
22 許可證、所有權和版權
22.1 哪些內容可賦予版權
22.2 首次發布權
22.3 什么是公共領域
22.4 選擇一個軟件許可證
22.5 伯克利軟件發布許可證(BSD)
22.6 GNU General Public License (GPL)
22.7 知識共享(CC)
22.8 其他許可證
22.9 更換許可證
22.10 版權不是一切
22.11 本章小結
23 關於計算物理進一步思考
下一步走向何方
術語
作者介紹
封面介紹
歡迎來到異步社區!
異步社區的來歷
社區里都有什么?
購買圖書
下載資源
與作譯者互動
靈活優惠的購書
紙電圖書組合購買
社區里還可以做什么?
寫作
會議活動早知道
加入異步
思維導圖
防止博客圖床圖片失效,防止圖片源站外鏈:
http://www.processon.com/chart_image/5e5b4097e4b0d4dc8776dc90.png)
思維導圖在線編輯鏈接: