内容正文:
Python科学计算与数据分析开发基础
Nanjing University
软件生态系统scipy
11.1
Python
Nanjing University
SciPy
特征
基于Python的软件生态系统(ecosystem)
开源
主要为数学、科学和工程服务
3
Python
Nanjing University
3
NumPy
特征
高性能科学计算和数据分析的基础包
强大的ndarray对象
精巧的函数和ufunc函数
适合线性代数和随机数处理等科学计算
>>> import numpy as np
>>> xArray = np.ones((3, 4))
Source
4
Python
Nanjing University
4
SciPy library
特征
Python中科学计算程序的核心包
有效计算numpy矩阵,让NumPy和SciPy library协同工作
致力于科学计算中常见问题的各个工具箱,其不同子模块有不同的应用,如插值、积分、优化和图像处理等
>>> import numpy as np
>>> from scipy import linalg
>>> arr = np.array([[1, 2], [3, 4]])
>>> linalg.det(arr)
-2.0
Source
5
Python
Nanjing University
5
Matplotlib
特征
基于NumPy
二维绘图库,简单快速地生成曲线图、直方图和散点图等形式的图
常用的pyplot是一个简单提供类似MATLAB接口的模块
6
Python
Nanjing University
6
pandas
特征
基于 SciPy library和 NumPy
高效的Series和DataFrame数据结构
强大的可扩展数据操作与分析的Python库
高效处理大数据集的切片等功能
提供优化库功能读写多种文件格式,如CSV、HDF5
…
>>> df[2 : 5]
>>> df.head(4)
>>> df.tail(3)
Source
7
Python
Nanjing University
7
Python常用的数据结构
数值型
字符串
列表
元组
字典
集合
8
Python
Nanjing University
8
其他数据结构?
SciPy中的数据结构
Python原有数据结构的变化
ndarray(N维数组)
Series(变长字典)
DataFrame(数据框)
9
Python
Nanjing University
9
Numpy
11.2
Python
Nanjing University
Python中的数组
用list和tuple等数据结构表示数组
一维数组 list = [1,2,3,4]
二维数组 list = [[1,2,3],[4,5,6],[7,8,9]]
array模块
通过array函数创建数组,array.array("B", range(5))
提供append、insert和read等方法
11
Python
Nanjing University
11
ndarray
ndarray是什么?
N维数组
NumPy中基本的数据结构
所有元素是同一种类型
别名为array
利于节省内存和提升计算性能
有丰富的函数
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0 1 2 3 4
5 6 7 8 9
10 11 12 13 14
15 16 17 18 19
20 21 22 23 24
12
Python
Nanjing University
12
11.2.1 ndarray的基本特性
13
Python
Nanjing University
ndarray基本概念
ndarray数组属性
N维数组
维度(dimensions)称为轴(axes),轴的个数称为秩(rank)
沿着第0轴和第1轴操作
axis = 0(按列)
axis = 1(按行)
0
0
0
0
0
0
0
0
0
0
0
0
1 2 3 4
5 6 7 8
9 10 11 12
14
第0轴
第1轴
Python
Nanjing University
14
ndarray基本概念
ndarray数组属性
N维数组
基本属性
ndarray.ndim(秩)
ndarray.shape(维度)
ndarray.size(元素总个数)
ndarray.dtype(元素类型)
ndarray.itemsize(元素字节大小)
0
0
0