许多物理学家在研究工作中还要扮演软件发人员的角色。但即使对于物理学家来说,也不是所有的软件发任务都很简单。本书是一本实践指南,介绍了软件发的许多基本技能,能够帮助读者自动化地完成物理领域几乎所有方面的研究。 本书由两位核工程博士编写,书中包含了物理领域的许多实际案例。通过阅读本书,读者会学到如何用Python编程语言收集、分析数据,构建软件,发布结果等技能。
售 价:¥
纸质售价:¥73.70购买纸书
温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印
为你推荐
版权声明
内容提要
前言
本书讲什么
本书目标读者
本书不适合哪些人
本书使用示例:辐射衰变常数
访问数据和软件库
创建一个简单的程序
自动化数据收集
分析和绘制数据
跟踪改动
测试代码
为代码提供文档
发布
阅读本书时应该做哪些事情
本书约定
使用实例代码
安装和设置
第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章 关于计算物理进一步思考
下一步走向何方
术语
作者介绍
封面介绍
欢迎来到异步社区!
异步社区的来历
社区里都有什么?
购买图书
下载资源
与作译者互动
灵活优惠的购书
纸电图书组合购买
社区里还可以做什么?
提交勘误
写作
会议活动早知道
加入异步
买过这本书的人还买过
读了这本书的人还在读
同类图书排行榜