主编推荐语
本书教授Python语言基础及科学计算应用,适合初学者,旨在替代昂贵的Matlab,受众包括高校师生和科技工作者。
内容简介
本书首先讲解了Python语言的语法基础,适合没有Python基础的人,随后重点讲解Python在科学计算方面的应用,包括数组的使用、多项式、最小二乘法拟合、绘制各种二维和三维数据图像、各种数值计算方法,例如聚类算法、线性代数运算(特征值、特征向量、线性方程组求解、奇异值分解、范数等)、稀疏矩阵的存储及线性代数运算、积分、微分、常微分方程组的求解、各种插值算法、优化算法(单变量、多变量局部优化和全局优化、曲线拟合、方程求根、线性规划)、傅里叶变换(FFT、正弦余弦变换、窗函数、短时傅里叶变换等)、信号处理(卷积和相关计算、FIR和IIR滤波器及设计、滤波器频率响应、小波分析等)、图像处理、正交距离回归、空间算法(三维旋转变换、kd树、劳内德三角形、凸包等),符号运算包括多项式简化、微分、积分、极限、泰勒展开、代数方程、常微分偏微分方程求解、非线性方程组求解、密集和稀疏矩阵运算、绘制二维和三维图像等,用Python处理Excel数据、绘制Excel数据图像,文本文件和二进制文件的读写等内容。本书内容讲解详细,给出了每个命令的语法格式,对语法中的参数进行了详细解释,在每个知识点配以实例程序。本书的主要目的是替代Mathlab,Matlab价格昂贵且受到美国政府的限制,不允许国内的一些行业使用,Python及科学算法包是开源的免费的。本书的主要读者对象是高校的老师、研究生、博士生、高年级本科生、科研院所及企业中的科技工作者等。
目录
- 封面页
- 书名页
- 版权页
- 前言
- 目录
- 第1章 Python编程基础
- 1.1 Python编程环境
- 1.1.1 Python语言简介
- 1.1.2 Python编程环境的建立
- 1.2 Python开发环境使用基础
- 1.2.1 Python自带集成开发环境
- 1.2.2 PyCharm集成开发环境
- 1.3 变量与赋值语句
- 1.3.1 变量和赋值的意义
- 1.3.2 变量的定义
- 1.3.3 赋值语句
- 1.4 Python中的数据类型
- 1.4.1 数据类型
- 1.4.2 数据类型的转换
- 1.4.3 字符串中的转义字符
- 1.5 表达式
- 1.5.1 数值表达式
- 1.5.2 逻辑表达式
- 1.5.3 运算符的优先级
- 1.6 Python编程的注意事项
- 1.6.1 空行与注释
- 1.6.2 缩进
- 1.6.3 续行
- 1.7 Python中常用的一些函数
- 1.7.1 输入函数和输出函数
- 1.7.2 range()函数
- 1.7.3 随机函数
- 1.8 分支结构
- 1.8.1 if分支结构
- 1.8.2 分支语句的嵌套
- 1.9 循环结构
- 1.9.1 for循环结构
- 1.9.2 while循环结构
- 1.9.3 循环体的嵌套
- 1.9.4 continue语句和break语句
- 第2章 Python的数据结构
- 2.1 列表
- 2.1.1 创建列表
- 2.1.2 列表元素的索引和输出
- 2.1.3 列表的编辑
- 2.2 元组
- 2.2.1 创建元组
- 2.2.2 元组元素的索引和输出
- 2.3 字典
- 2.3.1 创建字典
- 2.3.2 字典的编辑
- 2.4 集合
- 2.4.1 创建集合
- 2.4.2 集合的编辑
- 2.4.3 集合的逻辑运算
- 2.4.4 集合的元素运算
- 2.5 字符串
- 2.5.1 字符串的索引和输出
- 2.5.2 字符串的处理
- 2.5.3 格式化字符串
- 第3章 自定义函数、类和模块
- 3.1 自定义函数
- 3.1.1 自定义函数的格式
- 3.1.2 函数参数
- 3.1.3 函数的返回值
- 3.1.4 函数的局部变量
- 3.1.5 匿名函数lambda
- 3.1.6 函数的递归调用
- 3.2 类和对象
- 3.2.1 类和对象介绍
- 3.2.2 类的定义和实例
- 3.2.3 实例属性和类属性
- 3.2.4 类中的函数
- 3.2.5 属性和方法的私密性
- 3.2.6 类的继承
- 3.2.7 类的其他操作
- 3.3 模块和包
- 3.3.1 模块的使用
- 3.3.2 模块空间与主程序
- 3.3.3 包的使用
- 3.3.4 枚举模块
- 3.3.5 sys模块
- 第4章 异常处理和文件操作
- 4.1 异常信息和异常处理
- 4.1.1 异常信息
- 4.1.2 被动异常的处理
- 4.1.3 主动异常的处理
- 4.1.4 异常的嵌套
- 4.2 文件的读写
- 4.2.1 文件的打开与关闭
- 4.2.2 读取数据
- 4.2.3 写入数据
- 4.3 文件和路径操作
- 4.4 py文件的编译
- 第5章 NumPy数组运算
- 5.1 创建数组
- 5.1.1 数组的基本概念
- 5.1.2 NumPy的数据类型
- 5.1.3 创建数组的方法
- 5.1.4 数组的属性
- 5.1.5 NumPy中的常量
- 5.1.6 数组的切片
- 5.1.7 数组的保存与读取
- 5.2 数组操作
- 5.2.1 基本运算
- 5.2.2 调整数组的形状
- 5.2.3 数组的重新组合
- 5.2.4 数组的分解
- 5.2.5 数组的重复复制
- 5.2.6 类型转换
- 5.2.7 数组排序
- 5.2.8 数组查询
- 5.2.9 数组统计
- 5.2.10 数组的添加和删除
- 5.2.11 数组元素的随机打乱
- 5.2.12 数组元素的颠倒
- 5.3 随机数组
- 5.3.1 随机生成器
- 5.3.2 随机函数
- 5.4 矩阵
- 5.4.1 矩阵的定义
- 5.4.2 矩阵的方法
- 5.5 通用函数
- 5.5.1 数组基本运算函数
- 5.5.2 数组逻辑运算函数
- 5.5.3 数组三角函数
- 5.6 线性代数运算
- 5.6.1 矩阵对角线
- 5.6.2 数组乘积
- 5.6.3 数组的行列式
- 5.6.4 数组的秩和逆矩阵
- 5.6.5 特征值和特征向量
- 5.6.6 SVD分解
- 5.6.7 Cholesky分解
- 5.6.8 QR分解
- 5.6.9 范数和条件数
- 5.6.10 线性方程组的解
- 5.7 快速傅里叶变换
- 5.7.1 傅里叶变换公式
- 5.7.2 傅里叶变换及逆变换
- 5.7.3 窗函数
- 5.7.4 傅里叶变换的辅助工具
- 5.8 多项式运算
- 5.8.1 多项式的定义及属性
- 5.8.2 多项式的四则运算
- 5.8.3 多项式的微分和积分
- 5.8.4 多项式拟合
- 第6章 matplotlib数据可视化
- 6.1 二维绘图
- 6.1.1 折线图
- 6.1.2 对数折线图
- 6.1.3 堆叠图
- 6.1.4 时间折线图
- 6.1.5 带误差的折线图
- 6.1.6 填充图
- 6.1.7 阶梯图
- 6.1.8 极坐标图
- 6.1.9 火柴杆图
- 6.1.10 散点图
- 6.1.11 柱状图
- 6.1.12 饼图
- 6.1.13 直方图
- 6.1.14 六边形图
- 6.1.15 箱线图
- 6.1.16 小提琴图
- 6.1.17 等值线图
- 6.1.18 四边形网格颜色图
- 6.1.19 三角形图
- 6.1.20 箭头矢量图
- 6.1.21 流线图
- 6.1.22 矩阵图
- 6.1.23 稀疏矩阵图
- 6.1.24 风羽图
- 6.1.25 事件图
- 6.1.26 自相关函数图
- 6.1.27 互相关函数图
- 6.1.28 幅值谱和相位谱图
- 6.1.29 时频图
- 6.1.30 功率谱密度图
- 6.1.31 绘制图像
- 6.2 图像、子图和图例
- 6.2.1 图像对象
- 6.2.2 子图对象
- 6.2.3 图例对象
- 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.4.1 三维子图对象
- 6.4.2 三维折线图
- 6.4.3 三维散点图
- 6.4.4 三维柱状图
- 6.4.5 三维曲面图
- 6.4.6 三维等值线图
- 6.4.7 三维三角形网格图
- 6.4.8 三维箭头矢量图
- 第7章 SciPy数值计算方法
- 7.1 SciPy中的常数
- 7.1.1 数学和物理常量
- 7.1.2 单位换算常量
- 7.2 SciPy的数据读写
- 7.2.1 读写MATLAB文件
- 7.2.2 读写wave文件
- 7.2.3 读写Fortran文件
- 7.3 聚类算法
- 7.3.1 k-平均聚类法
- 7.3.2 矢量量化
- 7.3.3 层次聚类法
- 7.4 线性代数运算
- 7.4.1 特殊矩阵
- 7.4.2 矩阵函数
- 7.4.3 线性代数基本运算
- 7.4.4 向量和矩阵的范数
- 7.4.5 特征值和特征向量
- 7.4.6 矩阵分解
- 7.4.7 线性方程组的解
- 7.4.8 矩阵方程的解
- 7.5 稀疏矩阵
- 7.5.1 稀疏矩阵的基类
- 7.5.2 稀疏矩阵的定义
- 7.5.3 一些实用方法
- 7.5.4 稀疏矩阵的线性代数运算
- 7.6 数值积分
- 7.6.1 一重定积分
- 7.6.2 二重定积分
- 7.6.3 三重定积分
- 7.6.4 n重定积分
- 7.6.5 给定离散数据的积分
- 7.6.6 一阶常微分方程组的求解
- 7.6.7 二阶常微分方程组的求解
- 7.6.8 数值微分
- 7.7 插值计算
- 7.7.1 一维样条插值
- 7.7.2 一维多项式插值
- 7.7.3 二维样条插值
- 7.7.4 根据FFT插值
- 7.8 优化
- 7.8.1 单变量局部优化
- 7.8.2 多变量局部优化
- 7.8.3 多变量全局最优差分进化法
- 7.8.4 多变量全局最优模拟退火法
- 7.8.5 线性规划问题
- 7.8.6 用最小二乘法解方程误差最小问题
- 7.8.7 曲线拟合
- 7.8.8 求方程的根
- 7.9 傅里叶变换
- 7.9.1 离散傅里叶变换
- 7.9.2 傅里叶变换的辅助工具
- 7.9.3 离散余弦和正弦变换
- 7.9.4 窗函数
- 7.9.5 短时傅里叶变换
- 7.10 数字信号处理
- 7.10.1 信号的卷积和相关计算
- 7.10.2 二维图像的卷积计算
- 7.10.3 FIR与IIR滤波器
- 7.10.4 FIR与IIR滤波器的设计
- 7.10.5 滤波器的频率响应
- 7.10.6 其他滤波器
- 7.10.7 小波分析
- 7.11 图像处理
- 7.11.1 图像的卷积与相关计算
- 7.11.2 高斯滤波
- 7.11.3 图像边缘检测
- 7.11.4 样条插值滤波
- 7.11.5 广义滤波
- 7.11.6 图像的平移、旋转和缩放
- 7.11.7 图像的仿射变换
- 7.11.8 二进制形态学
- 7.12 正交距离回归
- 7.12.1 正交距离回归流程
- 7.12.2 简易模型
- 7.13 空间算法
- 7.13.1 三维空间旋转变换
- 7.13.2 kd-tree及最近邻搜索
- 7.13.3 德劳内三角剖分
- 7.13.4 凸包
- 7.13.5 Voronoi图
- 第8章 SymPy符号运算
- 8.1 符号与符号表达式
- 8.1.1 符号定义
- 8.1.2 符号表达式
- 8.1.3 符号表达式的简化
- 8.1.4 符号多项式操作
- 8.1.5 逻辑表达式
- 8.2 符号运算基础
- 8.2.1 有限集合
- 8.2.2 区间表示
- 8.2.3 等式和不等式
- 8.2.4 条件表示
- 8.2.5 分段函数
- 8.3 与微积分有关的运算
- 8.3.1 极限运算
- 8.3.2 微分运算
- 8.3.3 积分运算
- 8.3.4 泰勒展开
- 8.3.5 积分变换
- 8.4 方程求解
- 8.4.1 代数方程的求解
- 8.4.2 线性方程组的求解
- 8.4.3 非线性方程组的求解
- 8.4.4 常微分方程组的求解
- 8.4.5 偏微分方程的求解
- 8.5 矩阵运算
- 8.5.1 矩阵的创建
- 8.5.2 矩阵的属性和方法
- 8.5.3 稀疏矩阵
- 8.6 绘图
- 8.6.1 二维绘图
- 8.6.2 参数化绘图
- 8.6.3 隐式方程绘图
- 8.6.4 三维绘图
- 第9章 操纵Excel进行数据处理
- 9.1 工作簿和工作表格
- 9.1.1 openpyxl的基本结构
- 9.1.2 对工作簿和工作表格的操作
- 9.2 对工作表格的操作
- 9.3 对单元格的操作
- 9.4 在Excel中绘制数据图表
- 第10章 数据读写和文件管理
- 10.1 数据读写
- 10.1.1 QIODevice类
- 10.1.2 字节数组与字节串
- 10.1.3 QFile类
- 10.1.4 文本流读写文本数据
- 10.1.5 数据流读写二进制数据
- 10.1.6 原生数据的读写方法
- 10.2 数据存储文件
- 10.2.1 QTemporaryFile临时文件
- 10.2.2 QSaveFile存盘
- 10.2.3 QBuffer内存存储
- 10.3 文件管理
- 10.3.1 文件信息
- 10.3.2 路径管理
出版方
清华大学出版社
清华大学出版社成立于1980年6月,是由教育部主管、清华大学主办的综合出版单位。植根于“清华”这座久负盛名的高等学府,秉承清华人“自强不息,厚德载物”的人文精神,清华大学出版社在短短二十多年的时间里,迅速成长起来。清华大学出版社始终坚持弘扬科技文化产业、服务科教兴国战略的出版方向,把出版高等学校教学用书和科技图书作为主要任务,并为促进学术交流、繁荣出版事业设立了多项出版基金,逐渐形成了以出版高水平的教材和学术专著为主的鲜明特色,在教育出版领域树立了强势品牌。
