网站信任 用户转化,wordpress 请提供有效的用户名.,网上销售网站建设策划,教育机构网址NumPy包是python生态系统中数据分析、机器学习和科学计算的主力。 它极大地简化了向量和矩阵的操作。Python的一些主要软件包依赖于NumPy作为其基础架构的基础部分#xff08;例如scikit-learn、SciPy、pandas和tensorflow#xff09;。我们将介绍一些使用NumPy的主要方法例如scikit-learn、SciPy、pandas和tensorflow。我们将介绍一些使用NumPy的主要方法以及在我们为机器学习模型提供服务之前它如何表示不同类型的数据表格、声音和图像。import numpy as np一、数组操作1.1创建数组通过将python列表传递给NumPy对象使用np.array()创建一个NumPy数组即ndarray。 Python创建了我们在右边可以看到的数组一般情况我们希望直接使用NumPy作为初始化的数组数据。 NumPy为这些情况提供了诸如ones()zeros()和random.random()类等方法。 我们只需要向这些方法传递要生成的元素数量的参数一旦我们创建了数组我们就可以开始以有趣的方式操作它们。1.2 数组算术先来创建两个NumPy数组来展示它们的用处。 我们称之为data和ones这两个数组的加法就像我们1那么简单每一行相加。可以发现这样的计算不必在循环中实现。 这是非常好的抽象处理可以让你在更高层次上思考问题而不是陷入如何实现计算的算法里面。我们还可以像下面一样进行其他运算通常情况下我们希望在数组和单个数字之间执行操作我们也可以将其称为向量和标量之间的操作。 比如说我们的数组表示以英里为单位的距离我们希望将其转换为公里数。 我们只需要让数据* 1.6就可以了。NumPy让每个单元格都会发生相乘叫做广播。1.3索引数组我们可以索引、切片NumPy数组。1.4 数组聚合NumPy为我们提供非常好用的聚合功能除了最小值、最大值和总和之外还得到非常棒的东西比如平均值、所有元素相乘的结果、标准差以及其他很多。二、多维处理2.1 创建矩阵所有的例子都在一个维度上处理向量。 NumPy的厉害之处是能够将我们目前所看到的所有内容应用到任意维度上。我们可以传递一个Python列表让NumPy创建一个矩阵来表示它们np.array([[1,2],[3,4]])我们也可以使用上面提到的相同方法ones()zeros()和random.random()只要我们给它们一个元组来描述我们正在创建的矩阵的维度2.2 矩阵算术如果两个矩阵的大小相同我们可以使用算术运算符 – * /来进行矩阵计算。NumPy将这些作为位置操作处理只有当不同维度为1时例如矩阵只有一列或一行我们才能在不同大小的矩阵上进行这些算术运算在这种情况下NumPy将其广播规则用于该操作2.3 点积NumPy为每个矩阵提供了一个dot()方法我们可以用它来执行与其他矩阵的点积运算两个矩阵在它们彼此面对的一侧必须具有相同的尺寸上图底部红色的数字。您可以将此操作可视化为如下所示2.4 矩阵索引当我们操作矩阵时索引和切片操作变得更加有用冒号表示从哪个位置到哪个位置留空表示开头或者结尾逗号表示行和列。NumPy的索引是从0开始的并且后面的方括号是不包含后面的值即小于后面的值。2.5 矩阵聚合我们可以像聚合向量一样聚合矩阵我们不仅可以聚合矩阵中的所有值还可以使用axis参数在行或列之间进行聚合2.6 转置和重塑处理矩阵时的一个共同需求是需要旋转矩阵。 当我们需要采用两个矩阵的点积并需要对齐它们共享的维度时通常就是这种情况。 NumPy数组有一个方便的属性叫做T来获得矩阵的转置在更高级的应用中您可能会发现自己需要切换某个矩阵的维度。 在机器学习应用程序中通常就是这种情况其中某个模型期望输入的某个形状与您的数据集不同。 在这些情况下NumPy的reshape()法很有用。 您只需将矩阵所需的新尺寸传递给它即可。2.7 更多维度NumPy可以完成我们在任何维度定义数据。 其中心数据结构称为ndarrayN维数组。在很多方面处理新维度只需在NumPy函数的参数中添加逗号三、公式计算我们举一个计算均方误差的例子。实现适用于矩阵和向量的数学公式是考虑NumPy的关键用例。例如均方误差MSE公式它是监督机器学习、模型处理、回归问题的核心公式在NumPy中实现这一点是轻而易举的这样做的好处是我们不需要关心predictions和labels是否包含一个或一百个值只要它们的大小相同。我们可以通过一个示例逐步执行该代码行中的四个操作predictions和labels向量都包含三个值。 这意味着n的值为3。 在我们执行减法后我们最终得到如下值然后我们可以对矢量中的值进行平方然后求和结果就是均方误差。四、数据表示4.1 表格和电子表格构建模型所需的所有数据类型电子表格、图像和音频等很多都非常适合在n维数组中表示。电子表格或值表是二维矩阵。 电子表格中的每个工作表都可以是自己的变量。 Python中最受欢迎的抽象是pandas数据帧DataFrame它实际上使用NumPy并在其上构建。4.2 音频音频文件是一维样本数组。 每个样本都是一个代表音频信号的一小部分的数字。 CD质量的音频每秒可能有44,100个样本每个样本是-65535到65536之间的整数。这意味着如果你有一个10秒的CD质量的WAVE文件你可以将它加载到长度为10 * 44,100的NumPy数组中 441,000个样本。 想要提取音频的第一秒 只需将文件加载到我们称之为audio的NumPy数组中然后获取audio[:44100]。以下是一段音频文件4.3 图像图像是高度×宽度的像素矩阵。如果图像是黑白的即灰度则每个像素可以由单个数字表示通常在0黑色和255白色之间。想要裁剪图像的左上角10 x 10像素部分 告诉NumPy让你image[:10,:10]。这是一个图像文件的片段如果图像是彩色的则每个像素由三个数字表示RGB。 在这种情况下我们需要第三维因为每个单元格只能包含一个数字。 因此彩色图像由尺寸的ndarray表示(高x宽x 3。