1、NumPy的优势
(1)NumPy介绍 - 数值计算库
num - numerical (数值化的)
py - python
(2)ndarray介绍
ndarray:n - 任意个 ;d - dimension 维度 ; array - 数组
(3)ndarray 与 Python原生list运算效率比,效率有很大提升,节约了很多时间 --- 用在机器学习里
(4)ndarray的优势
1)存储风格
ndarray - 相同类型 - 通用性不强
list - 不同类型 - 通用性很强
2)并行化运算
ndarray支持向量化运算
3)底层语言
C语言,解除了GIL
2、认识N维数组 - ndarray属性(最重要的:shape、dtype)
(1)ndarray的属性
(2)ndarray的形状
1)如何理解数组的形状
2)ndarray的类型
3)创建数组的时候指定类型
3、基本操作(adarray.方法()、np.函数名())
(1)生成数组的方法
1)生成0和1
np.zeros(shape)
np.ones(shape)
2)从现有数组中生成
np.array()
np.copy()
np.asarray()
np.array() 和 np.copy() 是深拷贝
np.asarray() 是浅拷贝
3)生成固定范围的数组
np.linspace()
np.linspace(0,10,100)
# [0,10] 等距离
np.arange()
# 类似range
np.arange(a,b,c)
# 左闭右开,c是步长
4)生成随机数组
均匀分布(每组的可能性相等):
正态分布:
(2)数组的索引、切片
(3)形状修改
1)ndarray.reshape() --- 排列顺序没有变,只是重新划分(没有转置),返回新的ndarray,原始数据没有改变
2)ndarray.resize() --- 没有返回值,但是会对原始ndarray进行修改,效果跟reshape的一样
3)ndarray.T --- 转置
(4)类型修改
1)ndarray,astype(type)
2)ndarray序列化到本地:ndarray.tostring()
(5)数组的去重
4、ndarray运算
(1)逻辑运算
1)逻辑运算
不需要写 for循环 ,只需比较关系就可以得到True / False
也可以直接赋值 --- 布尔索引
2)通用判断函数
np.all(布尔值) --- 只要有一个False就返回False,只有全是True才返回True np.any(布尔值) --- 只要有一个True就返回True,只有全是False才返回False
3)三元运算符
(2)统计运算
1)统计指标
(3)数组间运算
1)数组与数的运算(运算符作用到每一个元素上)
2)数组与数组的运算(需要满足广播机制)
3)广播机制
可行的例子:
不匹配的例子:
4)矩阵运算***非常重要
1、、什么是矩阵:
两种方法存储矩阵:
ndarray 二维数组 :np.array()
matrix数据结构 : np.mat()
2、、矩阵乘法运算:
np.matmul
np.dot
矩阵与二维数组的区别:矩阵是用二维数组存储的,但是二维数组不一定是矩阵
5、合并、分割(实现数据的切分和合并,将数据进行切分合并处理)
(1)合并
(2)分割
6、IO操作与数据处理
(1)Numpy读取数据文件
缺点是:会有数据缺失,所以不建议Numpy进行读取
1)直接删除含有缺失值的样本
2)替换 / 插补
(2)如何处理缺失值