Python-机器学习基础-Numpy
Numpy
- Numpy优势
- 定义
- 开源的python科学计算库, 用于快速处理任意维度的数组 Numpy中,存储对象是ndarray
- 创建
- np.array([])
- numpy的优势
- 内存块风格
- 一体式存储
- 支持并行化运算
- 效率高于python代码
- 底层使用C,内部释放了GIL
- 内存块风格
- 定义
- N维数组-ndarray
- ndarray的属性
- ndarray.shape
- 数组维度的元组
- ndarray.ndim
- 数组维度
- ndarray.size
- 数组中的元素数量
- ndarray.itemsize
- 一个数组元素的长度(字节)
- ndarray.dtype
- 数组元素的类型
- ndarray.shape
- ndarray的形状
- np.array()
- 三维数组
- excel中有多个sheet
- 三维数组
- np.array()
- ndarray的类型
- bool
- int
- float
- str
- ……
- 注意:若不指定,整数默认int64,小数默认float64
- ndarray的属性
- 基本操作
- 生成数组的方法
- 生成0和1的数组
- np.ones()
- np.ones_like()
- 从现有数组生成
- np.array
- 深拷贝
- 相当于复制,不改变
- 深拷贝
- np.asarray
- 浅拷贝
- 相当于创建快捷方式,改变
- 浅拷贝
- np.array
- 生成固定范围数组
- np.linspace()
- nun--生成等间隔的多少个
- np.arrange()
- step--每间隔多少生成数据
- np.logspace()
- 生成以10的n次幂的数据
- np.linspace()
- 生成随机数组
- 均匀分布
- np.random.uniform(low,high,size)
- 正态分布
- 均值,方差
- 均值
- 图像的左右位置
- 方差
- 图像的“瘦”,还是“胖”
- 值越小,图形越“瘦高”,数据越集中 值越大,图形越“矮胖”,数据越分散
- 正态分布API
- np.random.normal(low,high,size)
- 均匀分布
- 生成0和1的数组
- 数组的索引、切片
- 直接索引
- 先对行进行索引,再进行列索引
- 高维数组索引,从宏观到微观
- 形状修改
- 对象.reshape()
- 不进行行列互换,产生新的变量
- 对象.resize()
- 不进行行列互换,对原值进行更改
- 对象.T
- 进行行列互换(转置矩阵)
- 对象.reshape()
- 类型修改
- 对象.astype()
- 数组去重
- np.unique()
- 生成数组的方法
- ndarray运算
- 逻辑运算
- 大于,小于直接进行判断
- 赋值:满足要求,直接进行赋值
- 通用判断函数
- np.all()
- 所有满足要求,采返回True
- np.any()
- 只要有一个满足要求,就返回True
- np.all()
- 三元运算符
- np.where()
- 满足要求,赋值第一个值,否则赋值第二个值
- np.logical_and()
- 并
- np.logical_or()
- 或
- np.where()
- 统计运算
- min
- 最小值
- max
- 最大值
- midian
- 中位数
- mean
- 均值
- std
- 标准差
- var
- 方差
- argmax
- 最大值下标
- argmin
- 最小值下标
- min
- 逻辑运算
- 矩阵
- 矩阵和向量
- 二维数组
- 一维数组
- 加法和标量乘法
- 加法
- 对应位置相加
- 乘法
- 标量和每个位置的元素相乘
- 加法
- 矩阵向量(矩阵)乘法
- [M行,N列]*[N行,L列] = [M行,L列]
- 矩阵乘法性质
- 满足结合律,不满足交换律
- 单位矩阵
- 对角线为1,其他位置为0
- 逆矩阵
- 矩阵A * 矩阵B = 单位矩阵
- 转置矩阵
- 行列互换
- 矩阵和向量
- 数组间运算
- 数组和数字是直接可以进行运算
- 数组和数组
- 需要满足广播机制
- 维度相同
- shape对应的位置为1
- 需要满足广播机制
- 矩阵乘法API
- np.dot
- 点乘
- np.matmul
- 矩阵相乘
- 注意:两者在进行矩阵相乘时候,没有区别; 但是,dot支持矩阵和数字相乘
- np.dot