《Python物理学高效计算》是一部由[美]安东尼·斯科普斯、 凯瑟琳·赫夫所编着的书籍,人民邮电出版社出版发行。
基本介绍
- 书名:Python物理学高效计算
- 作者:[美]安东尼·斯科普斯、 凯瑟琳·赫夫
- ISBN:9787115470782
- 出版社:人民邮电出版社
出版信息
出版社:人民邮电出版社
ISBN:9787115470782
版次:1
商品编码:12288061
品牌:异步图书
包装:平装
开本:16开
出版时间:2018-02-01
用纸:胶版纸
页数:454
正文语种:中文
内容简介
本书介绍了如何通过Python自动化地完成物理领域方面的研究。全书共分为4个部分,以Python代码为示例向读者介绍了如何用Python解决物理项目中出现的各种问题。第 1部分(第 1~6章):起步,介绍Python的基本知识,如命令行、数据容器、类和对象等。第 2部分(第7~13章):上手,主要介绍正则表达式、数据可视化、存储数据等实用知识。第3部分(第 14~18章):完善,介绍如何构建流程和软体、版本控制、调试和控制代码等。第4部分(第 19~23章):发布,介绍如何为代码生成文档、如何提高协作效率和软体许可证以及着作权的相关知识等。
目录
第 一部分 起步
第 1章 命令行简介 3
1.1 Shell概览 3
1.1.1 Shell是 一 款编程
语言 4
1.1.2 路径和pwd 5
1.1.3 主目录(~) 7
1.1.4 列出内容(ls) 8
1.1.5 更改目录(cd) 9
1.1.6 查看档案内容(head
和tail命令) 12
1.2 操作档案和目录 12
1.2.1 创建档案(nano、emacs、
vi、cat、>、
touch) 12
1.2.2 複製和重命名档案
(cp和mv) 17
1.2.3 创建目录
(mkdir) 18
1.2.4 删除档案和目录
(rm) 19
1.2.5 标誌和通配符 21
1.3 获取帮助 22
1.3.1 阅读程式手册
(man) 22
1.3.2 找到正确的
工具(apropos) 24
1.3.3 用重定向和管道组合
多个实用程式
(>、>>、|) 25
1.4 许可权和共享 26
1.4.1 查看许可权(ls –l) 27
1.4.2 设定所有权 28
1.4.3 设定许可权
(chmod) 29
1.4.4 创建连结(ln) 29
1.4.5 连线其他计算机
(ssh和scp) 30
1.5 环境 31
1.5.1 保存环境变数
(.bashrc) 33
1.5.2 运行程式
(PATH) 34
1.5.3 别名命令
(alias) 35
1.6 使用bash编写脚本 36
1.7 本章小结 38
第 2章 Python编程起步 39
2.1 运行Python 40
2.2 注释 41
2.3 变数 42
2.4 特殊变数 44
2.4.1 布尔值 44
2.4.2 None不是0! 45
2.4.3 NotImplemented
不是None! 45
2.5 操作符 45
2.6 字元串 49
2.6.1 字元串索引 50
2.6.2 字元串连线 52
2.6.3 字元串字面值 53
2.6.4 字元串方法 55
2.7 模组 56
2.7.1 导入模组 56
2.7.2 从模组中导入
变数 57
2.7.3 别名导入 58
2.7.4 导入变数别名 58
2.7.5 包 59
2.7.6 标準库和Python
生态系统 61
2.8 本章小结 62
第3章 基本容器 63
3.1 列表 64
3.2 元组 68
3.3 集合 69
3.4 字典 71
3.5 本章小结 73
第4章 流程控制和逻辑运算 75
4.1 条件语句 75
4.1.1 if-else语句 78
4.1.2 if-elif-else语句 79
4.1.3 if-else表达式 80
4.2 异常 80
4.2.1 抛出异常 81
4.3 循环 83
4.3.1 while循环 83
4.3.2 for循环 85
4.3.3 解析式 87
4.4 本章小结 90
第5章 使用函式 91
5.1 Python中的函式 91
5.2 关键字参数 94
5.3 变长参数 96
5.4 多返回值 98
5.5 作用域 99
5.6 递归 102
5.7 lambda 103
5.8 生成器 104
5.9 装饰器 107
5.10 本章小结 110
第6章 类和对象 112
6.1 面向对象 112
6.2 对象 113
6.3 类 117
6.3.1 类变数 118
6.3.2 实例变数 120
6.3.3 构造器 121
6.3.4 方法 123
6.3.5 静态方法 126
6.3.6 鸭子类型 127
6.3.7 多态 128
6.4 装饰器和元类 132
6.5 本章小结 134
第 2部分 上手
第7章 分析和可视化 139
7.1 準备数据 139
7.1.1 实验数据 143
7.1.2 模拟数据 144
7.1.3 元数据 145
7.2 载入数据 145
7.2.1 NumPy 146
7.2.2 PyTables 147
7.2.3 Pandas 147
7.2.4 Blaze 148
7.3 清理和改写数据 149
7.4 分析 153
7.4.1 模型驱动的分析 154
7.4.2 数据驱动的分析 155
7.5 可视化 156
7.5.1 可视化工具 157
7.5.2 gnuplot 158
7.5.3 matplotlib 160
7.5.4 Bokeh 165
7.5.5 Inkscape 167
7.6 本章小结 167
第8章 正则表达式 169
8.1 示例:杂乱的磁性 170
8.2 命令行中的元字元 171
8.2.1 用简单的模式
列出档案 172
8.2.2 根据模式全局查找
档案名称(find) 173
8.3 grep、sed、awk 179
8.4 在档案中查找模式
(grep) 179
8.5 在档案中查找和替换
(sed) 181
8.5.1 查找和替换複杂
模式 183
8.5.2 sed额外内容 184
8.6 处理数据列(awk) 186
8.7 Python正则表达式 188
8.8 本章小结 190
第9章 NumPy:以数组的形式
思考 192
9.1 数组 193
9.2 dtype 195
9.3 切片和视图 198
9.4 算术和广播 200
9.5 花式索引 204
9.6 掩模 206
9.7 结构数组 209
9.8 通用函式 211
9.9 其他有用的函式 213
9.10 本章小结 215
第 10章 数据存储:档案和
HDF5 216
10.1 Python中的档案 217
10.2 关于计算机架构的一些说明 221
10.3 HDF5中的重要思想 223
10.4 档案处理 225
10.5 层次布局 227
10.6 分块 229
10.7 核内和核外操作 233
10.7.1 核内 233
10.7.2 核外 234
10.8 查询 235
10.9 压缩 236
10.10 HDF5工具 237
10.11 本章小结 239
第 11章 物理中重要的数据
结构 240
11.1 散列表 240
11.1.1 调整大小 242
11.1.2 冲突 243
11.2 数据框 245
11.2.1 Series 246
11.2.2 DataFrame结构 247
11.3 B数 250
11.4 k-d树 252
11.5 本章小结 256
第 12章 并行化执行 258
12.1 规模和扩展能力 259
12.2 问题分类 261
12.3 示例:N体问题 262
12.4 非并行 263
12.5 执行绪 267
12.6 多处理 273
12.7 MPI 276
12.8 本章小结 281
第 13章 软体部署 283
13.1 部署软体本身 284
13.1.1 pip 285
13.1.2 Conda 289
13.1.3 虚拟机 292
13.1.4 Docker 293
13.2 部署到云端 297
13.3 在超算上部署 299
13.4 本章小结 300
第3部分 完善
第 14章 构建流程和软体 305
14.1 make 306
14.1.1 运行make 308
14.1.2 makefile 308
14.1.3 目标 309
14.1.4 特殊目标 311
14.2 构建和运行软体 312
14.2.1 Makefile配置 313
14.2.2 编译 316
14.3 安装 316
14.4 本章小结 317
第 15章 本地版本控制 318
15.1 什幺是版本控制 318
15.1.1 计算物理中的
实验室笔记本 319
15.1.2 版本控制工具的
类型 320
15.2 Git起步 320
15.2.1 安装Git 321
15.2.2 获取帮助 321
15.2.3 控制Git的行为
(git config) 322
15.3 使用Git进行本地版本
控制 323
15.3.1 创建本地库
(git init) 323
15.3.2 暂存档案 325
15.3.3 检查本地副本的状态
(git status) 326
15.3.4 保存快照
(git commit) 326
15.3.5 git log:查看
历史 329
15.3.6 查看改动
(git diff) 329
15.3.7 取消暂存或回滚档案
(git reset) 330
(git reset) 330
15.3.8 丢弃提交
(git revert) 331
15.3.9 列出、创建、删除分
支(git branch) 332
15.3.10 切换分支
(git checkout) 334
15.3.11 合併分支
(git merge) 334
15.3.12 处理冲突 336
15.4 本章小结 336
第 16章 远程版本控制 337
16.1 代码託管(github.com) 337
16.2 在GitHub上创建
代码库 339
16.3 声明远程库
(git remote) 339
16.4 向远程库传送提交
(git push) 340
16.5 下载代码库
(git clone) 341
16.6 从远程库获取内容
(git fetch) 344
16.7 合併远程库的内容
(git merge) 345
16.8 Pull等于Fetch加Merge
(git pull) 345
16.9 冲突 346
16.10 解决冲突 347
16.11 本章小结 348
第 17章 调试 350
17.1 遇到一个bug 351
17.2 print语句 352
17.3 互动式调试 354
17.4 在Pythong中调试
(pdb) 355
17.4.1 设定跟蹤点 356
17.4.2 步进 357
17.4.3 查询变数 358
17.4.4 设定状态 358
17.4.5 运行函式和
方法 359
17.4.6 继续执行 359
17.4.7 断点 360
17.5 剖析 360
17.5.1 使用pstats查看
剖析档案 361
17.5.2 可视化查看剖析
信息 361
17.5.3 使用Kernprof剖析
代码 364
17.6 linting 365
17.7 本章小结 366
第 18章 测试 368
18.1 为什幺要做测试 369
18.2 什幺时候写测试 369
18.3 在哪里编写测试 370
18.4 如何测试?测试哪些
内容 370
18.5 运行测试 373
18.6 边界情形 374
18.7 单元测试 376
18.8 集成测试 378
18.9 回归测试 380
18.10 测试生成器 380
18.11 测试覆盖 382
18.12 测试驱动开发 383
18.13 本章小结 386
第4部分 发布
第 19章 文档 389
19.1 为什幺文档很重要 389
19.1.1 文档非常有价值 390
19.1.2 编写文档比想像的
要简单 390
19.2 文档类型 391
19.2.1 理论手册 391
19.2.2 用户和开 发 者
指南 392
19.2.3 readme档案 392
19.2.4 注释 393
19.2.5 自文档代码 395
19.2.6 文档字元串 396
19.3 自动化 397
19.4 本章小结 401
第 20章 出版 402
20.1 文档处理 403
20.1.1 格式和内容
分离 403
20.1.2 跟蹤改动 404
20.2 文本编辑器 404
20.3 标记语言 405
20.3.1 LaTeX 406
20.3.2 参考文献 416
20.4 本章小结 419
第 21章 协作 421
21.1 任务单系统 422
21.1.1 工作流程概览 422
21.1.2 创建问题 424
21.1.3 分配问题 425
21.1.4 讨论问题 426
21.1.5 关闭问题 427
21.2 拉取请求和代码审查 427
21.2.1 提交拉取请求 428
21.2.2 审查合併请求 428
21.2.3 合併拉取请求 429
21.3 本章小结 429
第 22章 许可证、所有权和
着作权 430
22.1 哪些内容可赋予着作权 431
22.2 首 次发布权 431
22.3 什幺是公共领域 432
22.4 选择一个软体许可证 432
22.5 伯克利软体发布
许可证(BSD) 434
22.6 GNU General Public
License (GPL) 436
22.7 知识共享(CC) 437
22.8 其他许可证 438
22.9 更换许可证 440
22.10 着作权不是一切 441
22.11 本章小结 442
第 23章 关于计算物理进一步
思考 443
术语 447