Python中的NumPy Vectorize

2025年1月5日 | 阅读6分钟

引言

在本教程中,我们将学习 Python 中的 NumPy Vectorize。Python 为用户提供了不同的函数。对于向量化,Python 库提供了 NumPy 函数。NumPy 向量化接受 NumPy 数组或分层变量作为输入到系统,并产生一个 NumPy 数组或多个 NumPy 数组。NumPy 向量化在多次连续输入后将 pyfunc 视为 Python 函数映射,并帮助解释 NumPy 代码。我们使用 NumPy 向量化而不是循环来提高速度。数组在数据科学中扮演着重要角色,而速度至关重要。基本上,NumPy 是一个开源项目。在 Python 中,NumPy 比列表快。因此,可以很好地进行工作和操作。

NumPy 数组本质上是同质的。这意味着它是一个只包含一种数据类型的数组。Python 列表和元组包含不受限制的数据。NumPy 的向量化操作概念允许对 NumPy 数组对象和数据数组使用许多优化、预处理和算术运算。与简单的非向量化函数相比,输出和处理速度更快。

语法

下面给出了 NumPy Vectorize 在 Python 中的语法 -

参数

下面给出了 NumPy Vectorize 在 Python 中的参数 -

  • pyfunc:此参数定义了必需的 Python 函数和方法,因此称为参数。
  • otypes:此参数表示输出数据类型,它是可选的。在 otype 中,必须将字符串指定为指定数据类型的列表或类型代码符号。必须为每个输出指定数据。
  • doc:此参数是 docstring 的可选参数。如果文档中没有,则 docstring 将是 pyfunc_doc_str。
  • exclude:此参数是可选的。它包含一个字符串或数字,表示函数中将不会被向量化的位置参数或关键字参数。可以直接将一组字符串或数字传递给 pyfunc,而无需修改。
  • cache:这是一个可选参数。它缓存第一次函数调用;如果未提供 correct 和 otypes,这通常会确定输出。 
  • signature:这是一个可选参数。它是一个广义函数。例如,(x, y), (y) -> (x) 用于向量化矩阵-向量函数乘法。但如果提供了,pyfunc 将被调用(并且应该返回)一个形状由视图的近似大小给出的数组。默认情况下,Pyfunc 应该接受标量作为输入和输出。

程序代码 1

在此,我们提供了 NumPy Vectorize 在 Python 中的一个程序代码。我们在这里对 NumPy 数组使用了向量化加法方法。我们将向量化加法方法与简单的非向量化方法进行比较,非向量化方法是一种迭代方法,用于计算从 0 到 16,999 的数字。代码如下 -

输出

现在,我们运行上面的代码并找到 NumPy 数组上的向量化加法方法的结果。上面的代码表明 NumPy 的向量化函数比非向量化函数具有更好的特性。这意味着当程序中效率计算很重要时,我们不应该使用这些简单的函数,而应该使用 NumPy 向量化函数。输出如下 -

144491500
The time taken by the vectorized sum is: 65.5 µs ± 2.9 µs per loop (mean ± std. dev. of 7 runs, 10000 loops each)

144491500
The time taken by the iterative sum is: 72.3 ns ± 3.28 ns per loop (mean ± std. dev. of 7 runs, 10000000 loops each)

程序代码 2

在此,我们提供了 NumPy Vectorize 在 Python 中的另一个程序代码。在这里,我们将 NumPy 指数函数与 Python 内置的 math 库指数函数进行比较,以计算给定对象中每个条目的指数值。代码如下 -

输出

现在,我们运行上面的代码并找到计算给定对象中每个条目的指数值。在这里,我们可以看到 NumPy 向量化在计算结果方面效果更好,而 Python math 库有另一个限制,即许多数学库的限制。因为,与 NumPy 向量化不同,它只适用于小值。算术函数可用于计算具有非常大范围的指数值。输出如下 -

程序代码 3

在此,我们提供了 NumPy Vectorize 函数在 Python 中的另一个程序代码。代码如下 -

输出

现在,我们运行上面的代码并找到其输出。在此示例中,我们使用了 numpy 向量化。我们定义了一个向量化函数,其中 a 和 b 是参数。上面示例中使用的 Vectorize 函数减少了代码长度。在此示例中,x 直接作用于数组。使用下面的输出显示上述语句的结尾。输出如下 -

程序代码 4

在此,我们提供了 NumPy Vectorize docstring 在 Python 中的另一个程序代码。代码如下 -

输出

现在,我们运行上面的代码并找到其输出。对于向量化,docstring 从输入函数中检索,除非指定了 docstring。使用下面的输出显示上述代码的结尾。输出如下 -

welcome to Javatpoint

程序代码 5

在此,我们提供了 excluded 的另一个程序代码,它用于停止 Python 中某些参数的向量化。代码如下 -

输出

现在,我们运行上面的代码并找到其输出。excluded 用于停止参数的向量化。在此示例中,我们使用多项式,例如 polyval。最后,下面的输出用于显示上述代码的结尾。输出如下 -

[194 310]

结论

因此,在本教程中,我们将学习 Python 中的 NumPy Vectorize。我们从上述文章中学习了 numpy 向量化函数的基础知识。我们还通过每个参数的不同示例学习了如何在 Python 中使用它们。借助向量化函数,我们减少了算法的执行时间。从本文中,我们学习了如何在 Python 中解决 numpy 向量化问题。在这里,我们学习了 NumPy Vectorize 在 Python 中的语法和参数。我们还学习了一些关于它的程序代码。