- ISBN:9787030684462
- 装帧:一般胶版纸
- 册数:暂无
- 重量:暂无
- 开本:26cm
- 页数:237页
- 出版时间:2021-07-01
- 条形码:9787030684462 ; 978-7-03-068446-2
内容简介
本书介绍了python在大气海洋科学研究中常用的各种统计分析方法。全书分为两部分: **部分介绍用Python做科学计算常用的软件包, 包含Numpy、Pandas、Scipy等内容 ; 第二部分介绍大气海洋数据常用的各种统计分析方法, 包含平均分析、误差分析、方差分析、相关分析、趋势分析、突变分析、周期分析、回归分析、滤波分析、聚类分析、判别分析、插值分析、拟合与逼近分析、时空结构分析等方法, 对每个方法的计算步骤进行了详细的介绍, 给出了对应的Python程序及应用案例。
目录
第1章 Numpy——Python 科学计算的基础 1
1.1 为什么使用 Numpy 1
1.2 Numpy 中的 ndarray 1
1.3 创建 Numpy 数组 6
1.3.1 np.empty 6
1.3.2 np.zeros 7
1.3.3 np.ones 7
1.3.4 np.identity 8
1.3.5 np.fromiter 8
1.3.6 np.arange 9
1.3.7 np.linspace 9
1.3.8 np.logspace 10
1.3.9 np.fromfunction 11
1.4 Numpy 数组的索引与切片 11
1.4.1 一维数组 11
1.4.2 二维数组 12
1.4.3 多维数组 14
1.4.4 数组切片 15
1.4.5 花式索引 15
1.4.6 布尔型索引 17
1.5 Numpy 数组的运算 17
1.5.1 Numpy 数组的加法 18
1.5.2 Numpy 数组的乘法 19
1.5.3 Numpy 数组的转置 20
1.5.4 Numpy 数组的逆 20
1.6 Numpy 数组的简单统计 20
1.7 Numpy 解决线性代数问题 25
1.8 Numpy 数组的广播机制 26
第2章 Pandas——Python 数据分析库 28
2.1 为什么使用 Pandas 28
2.2 Series 28
2.2.1 创建 Series 28
2.2.2 访问 Series 30
2.2.3 Series 的属性 32
2.2.4 Series 常用函数 35
2.3 从 Series 到 DataFrame 38
2.3.1 创建 DataFrame 38
2.3.2 DataFrame 的常用方法 40
2.3.3 DataFrame 中数据的选取 43
2.3.4 分组与聚合统计 47
2.3.5 时间序列分析 49
第3章 Scipy——Python 科学计算 52
3.1 为什么使用 Scipy 52
3.2 sp.cluster 52
3.2.1 K-Means 聚类 53
3.2.2 层次聚类 53
3.3 sp.constants 54
3.4 sp.fftpack 55
3.5 sp.integrate 56
3.6 sp.interpolate 57
3.7 sp.io 58
3.8 sp.odr 59
3.9 sp.optimize 60
3.10 sp.stats 61
3.10.1 产生随机数 61
3.10.2 求概率密度 62
3.10.3 求累积概率密度 62
3.10.4 累积分布函数的逆函数 62
3.11 其他计算包简介 63
3.11.1 sp.linalg 63
3.11.2 sp.ndimage 63
3.11.3 sp.signal 63
3.11.4 sp.sparse 63
3.11.5 sp.spatial 63
3.11.6 sp.special 63
第4章 平均分析 64
4.1 一维数组的算术平均 64
4.2 一维数组的加权平均 64
4.3 多维数组在指定维度的算术平均 65
4.4 距平 66
4.5 基于多年逐月气象观测资料计算月平均气候态及距平 67
第5章 误差分析 69
5.1 平均误差 69
5.2 平均绝对误差 69
5.3 相对绝对误差 70
5.4 均方根误差 71
5.5 降水预报检验常见指标 72
第6章 方差分析 74
6.1 方差和标准差 74
6.2 基于方差的两组样本差异性检验 75
6.3 协方差 76
6.4 自协方差 76
6.5 落后交叉协方差 77
6.6 峰度系数和偏度系数 78
第7章 相关分析 79
7.1 皮尔逊相关系数及显著性检验 79
7.2 斯皮尔曼相关系数及显著性检验 80
7.3 三变量偏相关系数及显著性检验 81
7.4 自相关系数及显著性检验 83
7.5 落后交叉相关系数及显著性检验 84
7.6 气候矩平 85
第8章 趋势分析 87
8.1 线性倾向 87
8.2 滑动平均 89
8.3 累积距平 90
8.4 五点、七点和九点二次平滑 91
8.5 五点三次平滑 93
8.6 显著性检验 94
第9章 突变检测 96
9.1 滑动 t 检验 96
9.2 克拉默法(Cramer) 97
9.3 山本法(Yamamoto) 98
9.4 曼–肯德尔法 (Mann-Kendall) 99
9.5 佩蒂特法 (Pettitt) 101
第10章 周期分析 102
10.1 功率谱 102
10.2 交叉谱 104
第11章 回归分析 107
11.1 一元线性回归 107
11.2 多元线性回归 109
11.3 逐步回归 112
11.4 自回归分析 114
11.5 自回归滑动平均 117
第12章 滤波分析 121
12.1 基于滑动平均的低通滤波 121
12.2 基于二项系数滑动的低通滤波 122
12.3 高斯低通滤波 123
12.4 Butterworth 带通滤波 124
12.5 Lanczos 带通滤波 125
12.6 自设计带通滤波器 127
第13章 聚类分析 129
13.1 K-Means 聚类算法 129
13.2 层次聚类算法 132
13.3 SOM 聚类算法 135
13.4 FCM 聚类算法 140
第14章 判别分析 145
14.1 二级判别分析 145
14.2 距离判别法 147
14.3 贝叶斯判别法 149
14.4 费希尔判别法 154
14.5 逐步判别法 158
第15章 插值 166
15.1 一维线性插值 166
15.2 一维 N 阶拉格朗日插值 166
15.3 埃尔米特插值 167
15.4 埃特金插值 168
15.5 **种边界条件下的三次样条函数插值 169
15.6 第二种边界条件下的三次样条函数插值 171
15.7 二元三点插值 173
15.8 双线性插值 174
15.9 反距离权重插值 175
15.10 牛顿插值 177
第16章 拟合与逼近 180
16.1 *小二乘曲线拟合 180
16.2 切比雪夫曲线拟合 182
16.3 *佳一致逼近的里米兹方法 184
第17章 时空结构分离 187
17.1 经验正交函数分解 187
17.2 旋转经验正交函数分解 191
17.3 主振荡分析 196
第18章 变量场相关模态分离 202
18.1 典型相关分析 202
18.2 BP 典型相关分析 208
18.3 奇异值分解 211
第19章 航空运行大气科学常见算法 218
19.1 EI 颠簸指数 218
19.2 TI 颠簸指数 219
19.3 MOS CAT 概率预报因子指数 220
19.4 垂直风切变 221
19.5 水平风切变 221
19.6 Dutton 经验指数 222
19.7 ICAO 建议积冰指数 223
19.8 新积冰算法 223
19.9 RAOB 积冰算法 224
19.10 假霜点判别法 225
19.11 Farneback 光流法与金字塔算法结合 226
第20章 随机数 231
20.1 0~1 均匀分布的一个随机数 231
20.2 任意区间内均匀分布的一个随机整数 231
20.3 任意均值与方差的一个正态分布随机数 232
第21章 常用算法 234
21.1 众数 234
21.2 中位数 234
21.3 四舍五入 235
21.4 数据标准化 235
21.5 数据归一化 236
21.6 闰年平年 236
21.7 地球上两点间的距离 236
21.8 地球上多边形的面积 237
节选
第1章 Numpy.Python 科学计算的基础 Python 语言是一门语义化很强的语言,而且这种语言也经常用在科学计算中。Python 能够用于科学计算中,不仅仅是因为它相对其他语言更好理解,而且有很多前人已经书写完成 Python 与科学计算相关的模块或包,能够很大程度上简化我们书写的语句以及提高编写的效率与代码的可读性。 想要使用 Python 进行科学计算,首先要了解的包就是 Numpy,这是在 Python 科学计算中*基础的一个包。学习 Numpy 这个包时,可将 Numpy 理解为提供矩阵运算的包。 在本章中,笔者将为读者介绍 Numpy 的用法以及简单的实例,而在本书的后面章节也会涉及 Numpy 的相关知识以及具体用法。 1.1 为什么使用 Numpy 我们使用 Numpy,一定程度上是因为该包提供了很多关于矩阵运算的内容(在 Numpy中,我们习惯性地将这种矩阵称为“数组”或“Numpy 数组”)。但是有的读者可能就想到了,我可以使用列表来生成一个数组,并且通过原生的 Python 进行一些计算。如此操作是没有问题的,但是在这个过程中,将会涉及极其复杂的 I/O 操作,因此将会影响程序运行的速度。 为了解决程序运行速度的问题,使用 Numpy 这个包进行操作。但是,同样是 Python,Numpy 为什么会提高运行速度呢?其原因就是,Numpy 不完全是原生的 Python,其底层操作是调用 C 语言完成的,而 C 语言的执行效率又非常之高,因此就能够提高程序运行的速度。 所以一提到 Numpy,就经常将它和运行效率较高的 C 语言结合在一起。当你使用Numpy 的时候,其实就是在使用 C 语言来运行程序并且处理数据。 1.2 Numpy 中的 ndarray Numpy 中所有的操作都是基于数组展开的,那么一提到数组,就不得不提 Numpy 中*重要的一个对象——ndarray 对象,该对象的作用是组织 Numpy 数组。在 Python 中,理解 ndarray 对象的*好方式是将其理解为一个可以进行更高效操作的 list 对象。这样在操作 ndarray 对象的时候就可以得心应手了。在 ndarray 中,所有的数据都是同一类数据,也只能是同一类数据。那么,如何使用 ndarray 呢?其实 ndarray 对象就蕴藏在 numpy.array中。以下是 numpy.array 的示例: # 引入 Numpy 包(说明:在使用 Numpy 时,习惯性简称为 np) import numpy as np np.array( object , dtype = None , copy = True , order = None , subok = False , ndmin = 0 ) 参数说明: 上述参数虽然多,但是一般我们在使用的过程中经常提到的参数仅有两个,一个是必 填的 object,另一个是用于指定生成数据的数据类型 dtype。以下是一个生成数组的简单 示例: import numpy as np # 生成时如不指定 dtype,Numpy 将会根据输入的类型自动检查 # 如果需要强制指定数据类型,可以强制覆写 dtype a = np.array([ [1, 2, 3], [2, 3, 4] ], dtype = np.float64) print(a) 以下是样例输出: [[1. 2. 3.] [2. 3. 4.]] 由上述案例可以看到,我们通过从 Python 原生的数据类型 list 中,生成了一个 Numpy数组,并且我们通过指定其类型 dtype=np.float64,将原本均为整数的列表转化为 float64类型的浮点数数组。那么,Numpy 都为我们准备了哪些数据类型呢?我们通过下面这个表来了解。 续表 对于已经实例化的 array,也有很多属性能够了解它的内部状态。 1) 返回数组维度的数量。 import numpy as np a = np.array([1, 2, 3, 4, 5, 6]) b = np.array([ [1, 2, 3], [4, 5, 6] ]) print(a.ndim) print(b.ndim) 以下是样例输出: 1 2 ndarray.ndim 用于返回维度的数量,这与我们平时所说的“n 维数组”的 n 一致。 2) 返回数组的大小。 import numpy as np a = np.array([ [1, 2, 3], [4, 5, 6] ]) print(a.shape) 以下是样例输出: (2, 3) ndarray.shape 用于返回数组的大小,这与我们平时所说的“m × n 的数组”中的 m和 n 一致。 3) 返回数组元素个数。 import numpy as np a = np.array([ [1, 2, 3], [4, 5, 6] ]) print(a.size) 以下是样例输出: 6 ndarray.size 用于返回元素的总个数,其值为 m × n。 4) 返回数组的数据类型。 import numpy as np a = np.array([ [1, 2, 3], [4, 5, 6] ]) print(a.dtype) 以下是样例输出: int32 5) 返回数组每个元素的大小。 import numpy as np a = np.array([ [1, 2, 3], [4, 5, 6] ]) print(a.itemsize) 以下是样例输出: 4 6) 返回数组内存信息。 import numpy as np a = np.array([ [1, 2, 3], [4, 5, 6] ]) print(a.flags) 以下是样例输出: C_CONTIGUOUS : True F_CONTIGUOUS : False OWNDATA : True WRITEABLE : True ALIGNED : True WRITEBACKIFCOPY : False UPDATEIFCOPY : False 7) 返回复数数组的实部和虚部。 import numpy as np a = np.array([ [1 + 6j, 2 + 5j, 3 + 4j], [4 + 3j, 5 + 2j, 6 + 1j] ]) print(a.real) print(a.imag) 以下是样例输出: [[1. 2. 3.] [4. 5. 6.]] [[6. 5. 4.] [3. 2. 1.]] 8) 获取数组数据区内容。 import numpy as np a = np.ma.array([ [1, 2, 3], [4, 5, 6] ], mask=[ [True , False , True], [False , True , False] ]) print(a) # .data 方法一般用于 mask 数组 print(a.data) 以下是样例输出: [[-- 2 --] [4 -- 6]] [[1 2 3] [4 5 6]] 1.3 创建 Numpy 数组 想要使用 Numpy 进行数组的操作,**步就是要学会如何创建 Numpy 数组,本节将讲述几种创建数组的常用方式。 1.3.1 np.empty 1) 程序语句。 np.empty(shape, dtype=float, order='C') 2) 作用:返回一个空数组。 3) 参数说明。 4) 使用示例。 import numpy as np a = np.empty ((3, 3)) print(a) 以下是样例输出: [[1.61327616e-307 3.56043053e-307 1.60219306e-306] [2.44763557e-307 1.69119330e-306 1.33514617e-307] [3.56011818e-307 1.60219306e-306 1.11258446e-306]]
-
有限与无限的游戏:一个哲学家眼中的竞技世界
¥37.4¥68.0 -
全图解零基础word excel ppt 应用教程
¥12.0¥48.0 -
机器学习
¥59.4¥108.0 -
深度学习的数学
¥43.5¥69.0 -
智能硬件项目教程:基于ARDUINO(第2版)
¥37.7¥65.0 -
硅谷之火-人与计算机的未来
¥14.3¥39.8 -
元启发式算法与背包问题研究
¥38.2¥49.0 -
AI虚拟数字人:商业模式+形象创建+视频直播+案例应用
¥62.9¥89.8 -
UNIX环境高级编程(第3版)
¥164.9¥229.0 -
剪映AI
¥52.8¥88.0 -
深度学习高手笔记 卷2:经典应用
¥90.9¥129.8 -
纹样之美:中国传统经典纹样速查手册
¥77.4¥109.0 -
UG NX 12.0数控编程
¥24.8¥45.0 -
MATLAB计算机视觉与深度学习实战(第2版)
¥90.9¥128.0 -
界面交互设计理论研究
¥30.8¥56.0 -
UN NX 12.0多轴数控编程案例教程
¥25.8¥38.0 -
微机组装与系统维护技术教程(第二版)
¥37.8¥43.0 -
明解C语言:实践篇
¥62.9¥89.8 -
Linux服务器架设实战(Linux典藏大系)
¥84.5¥119.0 -
PREMIERE PRO 2023全面精通:视频剪辑+颜色调整+转场特效+字幕制作+案例实战
¥69.3¥99.0