1.Numpy介绍
Numpy(Numerical Python) 是一个开源的Python科学计算库, 用于快速处理任意维度的数组。
Numpy支持常见的数组和矩阵操作。 对于同样的数值计算任务, 使用Numpy比直接使用Python要简洁的多。
Numpy使用ndarray对象来处理多维数组, 该对象是一个快速而灵活的大数据容器。
2 ndarray介绍
NumPy提供了一个N维数组类型ndarray, 它描述了相同类型的“items”的集合。
生成numpy对象:np.array()
3 ndarray的优势
- 内存块风格
- list – 分离式存储,存储内容多样化
- ndarray – 一体式存储,存储类型必须一样
- ndarray支持并行化运算(向量化运算)
- ndarray底层是用C语言写的,效率更高,释放了GIL
4 N维数组-ndarray
4.1 ndarray的属性
4.2 ndarray的形状
首先创建一些数组。
# 创建不同形状的数组
>>> a = np.array([[1,2,3],[4,5,6]])
>>> b = np.array([1,2,3,4])
>>> c = np.array([[[1,2,3],[4,5,6]],[[1,2,3],[4,5,6]]])
分别打印出形状
>>> a.shape
>>> b.shape
>>> c.shape
(2, 3) # 二维数组
(4,) # 一维数组
(2, 2, 3) # 三维数组
4.3 ndarray的类型
5.数组的基本操作
5.1 生成数组的方法
5.1.1 生成0和1的数组
5.1.2 从现有的数组中生成
注意这里array 和asarray的区别
5.1.3 生成固定范围的数组
- 创建等差数组 — 指定数量
- 参数:
- start:序列的起始值
- stop:序列的终止值
- num:要生成的等间隔样例数量, 默认为50
- endpoint:序列中是否包含stop值, 默认为ture
5.1.4 生成随机数组
5.1.4.1 正态分布
- np.random.normal(loc=0.0, scale=1.0, size=None)
loc: float
此概率分布的均值( 对应着整个分布的中心centre)
scale: float
此概率分布的标准差( 对应于分布的宽度, scale越大越矮胖, scale越小, 越瘦高)
size: int or tuple of ints
输出的shape, 默认为None, 只输出一个值
举例1: 生成均值为1.75, 标准差为1的正态分布数据, 100000000个
5.1.4.2 均匀分布
- np.random.uniform(low=0.0, high=1.0, size=None)
功能: 从一个均匀分布[low,high)中随机采样, 注意定义域是左闭右开, 即包含low, 不包含high.
参数介绍:
low: 采样下界, float类型, 默认值为0;
high: 采样上界, float类型, 默认值为1;
size: 输出样本数目, 为int或元组(tuple)类型, 例如, size=(m,n,k), 则输出mnk个样本, 缺省时输出1个值
5.2 数组的索引、 切片
一维、 二维、 三维的数组如何索引?
- 直接进行索引,切片
- 对象[:, :] – 先行后列
二维数组索引方式:
- 举例: 获取第一个股票的前3个交易日的涨跌幅数据
# 二维的数组, 两个维度
stock_change[0, 0:3]
5.3 形状修改
5.4 类型修改
5.5 数组的去重
6 ndarray 运算
6.1 逻辑运算
6.2 通用判断函数
6.3 三元运算符
6.4 统计运算
6.5 数组间的运算
6.6 矩阵运算
- np.matmul
- np.dot