万本电子书0元读

万本电子书0元读

顶部广告

Python物理学高效计算电子书

许多物理学家在研究工作中还要扮演软件发人员的角色。但即使对于物理学家来说,也不是所有的软件发任务都很简单。本书是一本实践指南,介绍了软件发的许多基本技能,能够帮助读者自动化地完成物理领域几乎所有方面的研究。 本书由两位核工程博士编写,书中包含了物理领域的许多实际案例。通过阅读本书,读者会学到如何用Python编程语言收集、分析数据,构建软件,发布结果等技能。

售       价:¥

纸质售价:¥73.70购买纸书

288人正在读 | 2人评论 6.2

作       者:(美)安东尼·斯科普斯(Anthony Scopatz) 凯瑟琳·赫夫(Kathryn D. Huff)

出  版  社:人民邮电出版社

出版时间:2018-02-01

字       数:35.2万

所属分类: 科技 > 计算机/网络 > 程序设计

温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印

为你推荐

  • 读书简介
  • 目录
  • 累计评论(2条)
  • 读书简介
  • 目录
  • 累计评论(2条)
本书介绍了如何通过Python自动化地完成物理领域方面的研究。全书共分为4个部分,以Python代码为示例向读者介绍了如何用Python解决物理项目中出现的各种问题。第 1部分(第 1~6章):起步,介绍Python的基本知识,如命令行、数据容器、类和对象等。第 2部分(第7~13章):上手,主要介绍正则表达式、数据可视化、存储数据等实用知识。第3部分(第 14~18章):完善,介绍如何构建流程和软件、版本控制、调试和控制代码等。第4部分(第 19~23章):发布,介绍如何为代码生成文档、如何提高协作效率和软件*以及版权的相关知识等。 本书适合想要通过Python减少工作量的物理学领域的研究人员阅读,也适合想要学习如何通过Python编程解决物理问题的读者参考。<br/>【推荐语】<br/>许多物理学家在研究工作中还要扮演软件发人员的角色。但即使对于物理学家来说,也不是所有的软件发任务都很简单。本书是一本实践指南,介绍了软件发的许多基本技能,能够帮助读者自动化地完成物理领域几乎所有方面的研究。 本书由两位核工程博士编写,书中包含了物理领域的许多实际案例。通过阅读本书,读者会学到如何用Python编程语言收集、分析数据,构建软件,发布结果等技能。 本书分为4个部分。 起步:掌握Python、命令行、数据容器、函数、流程控制以及逻辑、类和对象。 上手:学习正则表达式、分析和可视化、NumPy、用文件和HDF5存储数据、物理中重要的数据结构、并行计算以及部署软件。 完善:构建流程和软件;使用本地和远程版本控制、调试并测试代码。 发布:为代码生成文档;发布研究结果;提高协作效率;了解软件*、所有权和版权的处理流程。<br/>【作者】<br/>Anthony Scopatz是计算物理学家和资 深Python 发 者。Anthony拥有加州大学圣塔芭芭拉分校的理学学士学位,以及得克萨斯大学奥斯汀分校的机械/核能博士学位。Enthought前员工,曾在芝加哥大学天文物理学系的Flash Center行博士后研究,目前是威斯康星大学麦迪逊分校工程物理系的工作人员,主要研究核燃料循环的基本物理建模、信息理论和熵。Anthony是Python软件基金会的成员,并在许多会议上行过以科学和软件发为主题的演讲。 Kathryn D.Huff是伯克利数据科学研究所的研究员,也是加州大学伯克利分校核能科学与安全联盟的博士后研究员。2013年获得威斯康星大学麦迪逊分校的核工程博士学位。她还拥有芝加哥大学物理学学士学位。她参与了实验宇宙天体物理学、实验非平衡粒状物相动力学、计算核燃料循环分析、计算反应堆事故中子学等领域的研究。在威斯康辛州,她是科学计算机组织Hacker Within的创始人,自2011年以来一直担任Software Carpentry的讲师。在专业的其他方面,她目前是美国核学会的部门主管,连续两年担任Scientific Computing with Python (SciPy)会议的程序委员会联合主席。<br/>
目录展开

版权声明

内容提要

前言

本书讲什么

本书目标读者

本书不适合哪些人

本书使用示例:辐射衰变常数

访问数据和软件库

创建一个简单的程序

自动化数据收集

分析和绘制数据

跟踪改动

测试代码

为代码提供文档

发布

阅读本书时应该做哪些事情

本书约定

使用实例代码

安装和设置

第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章 关于计算物理进一步思考

下一步走向何方

术语

作者介绍

封面介绍

欢迎来到异步社区!

异步社区的来历

社区里都有什么?

购买图书

下载资源

与作译者互动

灵活优惠的购书

纸电图书组合购买

社区里还可以做什么?

提交勘误

写作

会议活动早知道

加入异步

累计评论(2条) 2个书友正在讨论这本书 发表评论

发表评论

发表评论,分享你的想法吧!

买过这本书的人还买过

读了这本书的人还在读

回顶部