“广播”是指 NumPy 在算术运算期间如何处理不同维度的数组。较小的数组在较大的数组中“广播”,但受到一定的限制,以确保它们的形状一致。广播允许您进行矢量化数组操作,允许您在 C 而不是 Python 中循环。”
这是在不需要不必要的数据副本的情况下完成的,从而实现了高效的算法实现。在某些情况下,广播是一个消极的想法,因为它会导致内存利用率的浪费,从而减慢计算速度。
在本文中,我们将向您展示如何使用 python 使用 NumPy 数组进行广播。
步骤1.创建两个维度兼容的数组
步骤2.打印给定的数组
步骤3.对两个数组进行算术运算
第四步.打印结果数组
使用arange()函数创建一个由0到n-1的数字组成的numpy集群(arange()函数返回给定区间内均匀间隔的值。在半开区间[start,stop]内生成值),将某个分散值加到其中。
给定的阵列有一个维度(轴),长度为8,而9是一个没有维度的简单整数。由于它们的维度不同,Numpy尝试沿着某个轴广播(只是拉伸)放大的阵列,故适用于数学攻击。
使用 arange() 函数创建两个从 0 到 n-1 的 NumPy 数组,并使用 reshape() 函数重塑它(重塑数组而不影响其数据)。这两个数组具有兼容的维度 (3,4) 和 (3,1),并将两个数组的相应元素相加。
givenArray_2 沿第二维扩展以匹配givenArray_1 的维度。由于两个数组的尺寸兼容,这才成为可能。
创建两个维度不兼容的 NumPy 数组 (6, 4) 和 (6, 1)。当我们尝试添加两个数组的相应元素时,它会引发错误,如下所示。
行数为6,列数为4。
无法插入大小为 20 的矩阵(需要大小为 6*4 = 24 的矩阵)。
使用 arange() 函数创建一个多维数组,并使用 reshape() 函数将其重塑为随机数量的行和列。使用 arange() 函数创建另一个线性数组并对这两个数组求和。
给定的线性数据库进行扩展,以匹配给定的数据库1(多维数据库)的维度。由于两个数据库的维度是兼容的,这是可能的。
理解多个数组可以沿多个维度传播是至关重要的。 Array1 的维度为 (6, 5, 4, 2),而 array2 的维度为 (5, 4, 1)。维度数组是通过沿第三维拉伸 array1 和沿第一维和第二维(6, 5, 4, 2)拉伸 array2 形成的。
Numpy 广播比在磁盘上的循环速度更快。从第一个例子开始。用户可以通过磁盘循环,将相同的数字添加到磁盘上的每个元素,而不是使用广播方法。这种方式很慢,有两个原因:循环需要与Python循环进行交互,这会减慢C实现的速度。相反,NumPy使用步幅是循环。将步幅设置为0您无限循环遍历组件,而不会产生内存开销。
以上是如何使用Python使用动态数组执行Numpy广播?的详细内容。更多信息请关注PHP中文网其他相关文章!