NumPy ufunc - Python 的通用函数2024 年 8 月 29 日 | 阅读 6 分钟 NumPy,是“Numerical Python”的缩写,是 Python 中进行数值计算和科学计算的基础库之一。它最强大的功能之一就是通用函数(Universal Functions),通常简称为“ufuncs”。NumPy 中的 ufuncs 允许对数组进行高效的逐元素(element-wise)操作,使其成为 Python 中数据处理和数学计算的基石。在本文中,我们将深入探讨 ufuncs 是什么,它们如何工作,并探讨一些实际用例。 什么是 NumPy 通用函数(ufuncs)?在 NumPy 中,通用函数(ufunc)是一种灵活的应用函数于数组(或标量)的元素,独立地、逐个元素地处理的方式。Ufuncs 可以处理不同形状的数组,并通过广播(broadcasting)机制确保操作被有效地、以内存友好的方式执行。Ufuncs 是 NumPy 的一个关键特性,因为它们实现了矢量化操作,这比使用显式循环快得多,也更简洁。 ufunc 的语法 NumPy 中的 ufuncs 通常看起来像普通的 Python 函数,但它们是为数组实现的。语法通常包括:
ufuncs 如何工作?Ufuncs 通过对数组执行逐元素操作来工作。当你将一个 ufunc 应用于一个数组时,它会单独地处理数组的每个元素,并产生一个新的结果数组。关键优势在于,这个操作是在编译过的 C 代码中执行的,这使得 ufuncs 比使用 Python 循环执行的相同操作快得多。 下面是一个简单的例子 输入 输出 [ 8 6 10 3] 在这种情况下,**np.add** ufunc 用于将 arr1 和 arr2 的对应元素相加。操作是逐个元素完成的,从而生成一个新的数组。 实际用例
Ufuncs 通常用于对数组执行数学运算,包括加法、减法、乘法、除法、幂运算等。这些运算是逐个元素的,非常适合科学和数学计算。
输入 输出 [1.41421356 2.82842712 2.44948974 2. ]
离散差值是指计算两个连续元素之间的差值。 例如:对于 [1, 2, 3, 4],离散差值将是 [2-1, 3-2, 4-3] = [1, 1, 1] 要查找离散差值,请使用 diff() 函数。 输入 输出 [ 5 5 -25] 输入 输出 [ 0 -30]
要计算数组中元素的乘积,请使用 prod() 函数。 输入 输出 64
输入 输出 2822400 三角函数NumPy 的 ufuncs 包含多种三角函数,如 **sin, cos, tan** 及其反函数,这在科学和工程应用中非常有用。 输入 输出 [0. 0.70710678 1. ] 输入 输出 [0.10033535 0.20273255 0.54930614] 广播Ufuncs 在广播(broadcasting)中也起着至关重要的作用,它允许 NumPy 有效地处理不同形状的数组。广播会将较小的数组扩展以匹配较大数组的形状,从而无需创建数据副本即可执行逐元素操作。 输入 输出 [[80 60 50] [20 40 30]] GCD(最大公约数)GCD(Greatest Common Denominator),也称为 HCF(Highest Common Factor),是指能同时整除两个或多个整数的最大整数。 输入 输出 6 数组中的 GCD要查找数组中所有值的最大公约数,可以使用 reduce() 方法。 reduce() 方法将使用 ufunc(在本例中为 gcd() 函数)对每个元素进行操作,并将数组的尺寸减一。 输入 输出 5 LCM(最小公倍数)LCM(Least Common Multiple)是指能同时被两个或多个整数整除的最小整数。 输入 输出 10 数组中的 LCM要查找数组中所有值的最小公倍数,可以使用 reduce() 方法。 reduce() 方法将使用 ufunc(在本例中为 lcm() 函数)对每个元素进行操作,并将数组的尺寸减一。 输入 输出 24 包含 3 到 15 所有整数的数组所有值的 LCM 输入 输出 360360 NumPy 通用函数(ufuncs)是 NumPy 库的基本组成部分,它们提供了多种优势,并在科学计算、数据分析等领域有广泛的应用。以下是 NumPy ufuncs 在 Python 中的一些主要优点和应用: NumPy Ufuncs 的优势
NumPy Ufuncs 的应用
|
对数函数是指数函数的逆函数。如果有一个指数方程,例如 2^3 = 8,可以将其改写为对数方程:log2(8) = 3。Python 的 log base 2 函数可以通过内置的 math 模块访问。这个...
阅读 2 分钟
机械技术是一个先进的工作领域,机器可能会与人混淆。先进的机器人技术现在是,并且在相当长一段时间内,将是信息技术最非凡的领域之一。机器人领域被认为是一个将...
阅读 8 分钟
简介:在本文中,我们将讨论 Deepchecks:测试机器学习模型 (Python)。一个成功且可靠的学习系统版本必须通过各个程度的成熟。它从记录系列和整理、准确分割事实以及正确地对版本进行教学、测试和验证开始...
阅读 6 分钟
我们知道像 Python 这样的编程语言是一种解释型语言,这本质上意味着每个代码块或代码行都一个接一个地处理,而不是将整个程序一次性更改为低级代码。每当 Python 解释器扫描一行代码时……
7 分钟阅读
Python dateutil 模块简介 每当我们开始使用需要实时数据的脚本时,我们都必须使用 dateutil 模块来在特定时间检索或调度数据,或输入带有检索时间戳的数据。这可能是一项艰巨的任务...
阅读 8 分钟
Python是全球增长最快的编程语言之一,其背后的原因不难理解。Python是一种开源的高级编程语言,对于初学者来说易于学习和使用。它被广泛应用于Web开发、数据...
阅读 6 分钟
在本教程中,我们将学习 Python 3.11 的全新激动人心的功能。Python 社区正在努力使 Python 变得更好并提高其性能。现在,他们在新版本中带来了全新且有用的功能和属性...
阅读 3 分钟
想象一下这样一个情况,我们必须检查 100 个条件才能操作。传统上,我们使用条件语句(if、if-else、elif、嵌套 if)来检查条件是否为真。但是,对于这么多条件,代码变得冗长,并且过多的 if 语句会降低代码的可读性...
阅读 4 分钟
在处理许多数据集时,完全理解客户在表格样式中看到的内容可能具有挑战性。为了使我们的数据更有条理,理解其含义并选择合适的模型,我们必须对其进行可视化或视觉表示。因此,我们可以...
阅读 4 分钟
Python中的assert语句使用户能够向其代码添加健全性测试。断言是他们在编写代码时可以用来检查特定假设是否仍然有效的一种检查。如果他们的任何断言变为假,则他们的代码中存在缺陷。断言将……
阅读 4 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India