NumPy - 使用 ufunc 查找最大公约数 (GCD)
使用通用函数查找最大公约数 (GCD)
NumPy 提供了一个名为 numpy.gcd() 的通用函数 (ufunc),用于逐元素计算两个数组的最大公约数 (GCD)。两个整数的最大公约数是能够整除两个数而不留余数的最大正整数。
此函数在处理整数数组时特别有用,因为您需要查找相应元素的最大公约数。
NumPy gcd() 函数
numpy.gcd() 函数用于逐元素计算两个数组的最大公约数。它返回一个新数组,其中包含输入数组中相应元素的最大公约数 (GCD)。
示例
在下面的示例中,我们使用 numpy.gcd() 函数来查找两个数组中元素的最大公约数 −
import numpy as np
# 定义两个数组
a = np.array([12, 18, 24])
b = np.array([15, 27, 36])
# 计算元素级的最大公约数 (GCD)
gcd_result = np.gcd(a, b)
print("数组的最大公约数:", gcd_result)
以下是得到的输出 −
数组:[3 9 12]
NumPy gcd() 函数与标量
numpy.gcd() 函数也可以与标量值一起使用,计算两个单个整数的最大公约数 (GCD)。它的工作方式与数组相同,返回给定标量的 GCD。
示例
在下面的示例中,我们使用 numpy.gcd() 函数来查找两个标量值的 GCD -
import numpy as np
# 定义两个标量
a = 48
b = 60
# 计算标量的 GCD
gcd_result = np.gcd(a, b)
print("标量的 GCD:", gcd_result)
这将产生以下结果 -
标量的 GCD:12
多维的 GCD数组
numpy.gcd() 函数也可以应用于多维数组。它计算数组中每个对应元素的最大公约数 (GCD),处理任何形状的数组,只要它们可以广播到相同的形状即可。
示例
在下面的示例中,我们使用 numpy.gcd() 函数逐个元素计算两个二维数组的最大公约数 −
import numpy as np
# 定义两个二维数组
a = np.array([[14, 21], [35, 49]])
b = np.array([[7, 14], [21, 28]])
# 计算逐个元素的最大公约数 (GCD)
gcd_result = np.gcd(a, b)
print("二维数组的最大公约数:
", gcd_result)
结果如下 −
二维数组的最大公约数 (GCD): [[ 7 7] [ 7 7]]
NumPy gcd.reduce() 函数
numpy.gcd.reduce() 函数计算数组元素沿指定轴的最大公约数 (GCD)。这对于查找数组中多个元素的最大公约数 (GCD) 非常有用。
示例
在下面的示例中,我们使用 numpy.gcd.reduce() 函数查找数组中所有元素的最大公约数 -
import numpy as np
# 定义一个数组
a = np.array([60, 90, 150])
# 计算所有元素的最大公约数
gcd_result = np.gcd.reduce(a)
print("所有元素的最大公约数:", gcd_result)
这将产生以下结果 -
所有元素的最大公约数:30

