Bootstrap

numpy的基本使用

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没有区别。

在这里插入图片描述

;