1. Numpy介绍
- Numpy(Numerical Python)是一个开源的Python科学计算库,用于快速处理任意维度的数组。
- Numpy支持常见的数组和矩阵操作。对于同样的数值计算任务,使用Numpy比直接使用Python要简洁的多。
- Numpy使用ndarray对象来处理多维数组,该对象是一个快速而灵活的大数据容器。
2 ndarray介绍
NumPy提供了一个N维数组类型ndarray,它描述了相同类型的“items”的集合
3 ndarray与Python原生list运算效率对比
ndarray的计算速度要快很多,节约了时间。
机器学习的最大特点就是大量的数据运算,那么如果没有一个快速的解决方案,那可能现在python也在机器学习领域达不到好的效果。
Numpy专门针对ndarray的操作和运算进行了设计,所以数组的存储效率和输入输出性能远优于Python中的嵌套列表,数组越大,Numpy的优 势就越明显。
4 ndarray的优势
4.1 内存块风格
这是因为ndarray中的所有元素的类型都是相同的,而Python列表中的元素类型是任意的,所以ndarray在存储元素时内存可以连续,而python 原生list就只能通过寻址方式找到下一个元素,这虽然也导致了在通用性能方面Numpy的ndarray不及Python原生list,但在科学计算中,Numpy 的ndarray就可以省掉很多循环语句,代码使用方面比Python原生list简单的多。
- numpy内置了并行运算功能,当系统有多个核心时,做某种计算时,numpy会自动做并行计算
- Numpy底层使用C语言编写,内部解除了GIL(全局解释器锁),其对数组的操作速度不受Python解释器的限制,所以,其效率远高于纯 Python代码。
5. ndarray基础
5.1 ndarray的属性
5.2 ndarray的使用
5.3 ndarray的属性
5.4 数组的形状
5.5 数组的类型
5.6 数组的基本操作
1.生成数组的方式
- 生成0、1数组
- 从现有数组中生成
- 生成固定范围的数组
np.linspace (start, stop, num, endpoint)
创建等差数组 — 指定数量
参数:
start:序列的起始值
stop:序列的终止值
num:要生成的等间隔样例数量,默认为50
endpoint:序列中是否包含stop值,默认为ture
np.arange(start,stop, step, dtype)
创建等差数组 — 指定步长
参数step:步长,默认值为1
np.logspace(start,stop, num)
创建等比数列
参数:
num:要生成的等比数列数量,默认为50
- 生成随机数组
正态分布
均匀分布
5.7 数组的索引和切片
5.8 形状修改
5.9 类型修改
5.10 数组的去重
6. ndarray的运算
6.1 逻辑运算
6.2 通用判断函数
6.3 np.where(三元运算符)
6.4 统计运算
6.5 数组间的运算
广播机制实现了时两个或两个以上数组的运算,即使这些数组的shape不是完全相同的,只需要满足如下任意一个条件即可。 如果两个数组的后缘维度(trailing dimension,即从末尾开始算起的维度)的轴长度相符, 或其中的一方的长度为1。
6.6 矩阵的运算
np.matmul和np.dot的区别: 二者都是矩阵乘法。 np.matmul中禁止矩阵与标量的乘法。 在矢量乘矢量的內积运算中,np.matmul与np.dot没有区别。