×
超值优惠券
¥50
100可用 有效期2天

全场图书通用(淘书团除外)

关闭
图文详情
  • ISBN:9787115470782
  • 装帧:一般胶版纸
  • 册数:暂无
  • 重量:暂无
  • 开本:32开
  • 页数:454
  • 出版时间:2018-02-01
  • 条形码:9787115470782 ; 978-7-115-47078-2

本书特色

本书介绍了如何通过Python自动化地完成物理领域方面的研究。全书共分为4个部分,以Python代码为示例向读者介绍了如何用Python解决物理项目中出现的各种问题。第 1部分(第 1~6章):起步,介绍Python的基本知识,如命令行、数据容器、类和对象等。第 2部分(第7~13章):上手,主要介绍正则表达式、数据可视化、存储数据等实用知识。第3部分(第 14~18章):完善,介绍如何构建流程和软件、版本控制、调试和控制代码等。第4部分(第 19~23章):发布,介绍如何为代码生成文档、如何提高协作效率和软件许可证以及版权的相关知识等。 本书适合想要通过Python减少工作量的物理学领域的研究人员阅读,也适合想要学习如何通过Python编程解决物理问题的读者参考。

内容简介

许多物理学家在研究工作中还要扮演软件开发人员的角色。但即使对于物理学家来说,也不是所有的软件开发任务都很简单。本书是一本实践指南,介绍了软件开发的许多基本技能,能够帮助读者自动化地完成物理领域几乎所有方面的研究。 本书由两位核工程博士编写,书中包含了物理领域的许多实际案例。通过阅读本书,读者会学到如何用Python编程语言收集、分析数据,构建软件,发布结果等技能。 本书分为4个部分。 起步:掌握Python、命令行、数据容器、函数、流程控制以及逻辑、类和对象。 上手:学习正则表达式、分析和可视化、NumPy、用文件和HDF5存储数据、物理中重要的数据结构、并行计算以及部署软件。 完善:构建流程和软件;使用本地和远程版本控制、调试并测试代码。 发布:为代码生成文档;发布研究结果;提高协作效率;了解软件许可证、所有权和版权的处理流程。

目录

第 一部分 起步

第 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 ?Cl) 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

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
展开全部

作者简介

Anthony Scopatz是计算物理学家和资 深Python开 发 者。Anthony拥有加州大学圣塔芭芭拉分校的理学学士学位,以及得克萨斯大学奥斯汀分校的机械/核能博士学位。Enthought前员工,曾在芝加哥大学天文物理学系的Flash Center进行博士后研究,目前是威斯康星大学麦迪逊分校工程物理系的工作人员,主要研究核燃料循环的基本物理建模、信息理论和熵。Anthony是Python软件基金会的成员,并在许多会议上进行过以科学和软件开发为主题的演讲。 Kathryn D.Huff是伯克利数据科学研究所的研究员,也是加州大学伯克利分校核能科学与安全联盟的博士后研究员。2013年获得威斯康星大学麦迪逊分校的核工程博士学位。她还拥有芝加哥大学物理学学士学位。她参与了实验宇宙天体物理学、实验非平衡粒状物相动力学、计算核燃料循环分析、计算反应堆事故中子学等领域的研究。在威斯康辛州,她是科学计算机组织Hacker Within的创始人,自2011年以来一直担任Software Carpentry的讲师。在专业的其他方面,她目前是美国核学会的部门主管,连续两年担任Scientific Computing with Python (SciPy)会议的程序委员会联合主席。

预估到手价 ×

预估到手价是按参与促销活动、以最优惠的购买方案计算出的价格(不含优惠券部分),仅供参考,未必等同于实际到手价。

确定
快速
导航