NumPy - 使用 ufunc 查找最小公倍数
使用通用函数查找最小公倍数
NumPy 提供了一个名为 numpy.lcm() 的通用函数 (ufunc),用于逐个元素计算两个数组的最小公倍数 (LCM)。两个整数的 LCM 是能被两个整数整除的最小正整数。
此函数在处理整数数组时特别有用,因为您需要查找相应元素的 LCM。
NumPy lcm() 函数
numpy.lcm() 函数用于逐个元素计算两个数组的最小公倍数。它返回一个新数组,其中包含输入数组中相应元素的最小公倍数 (LCM)。
示例
在下面的示例中,我们使用 numpy.lcm() 函数来查找两个数组中元素的最小公倍数 −
import numpy as np # 定义两个数组 a = np.array([4, 6, 8]) b = np.array([6, 8, 10]) # 计算逐元素最小公倍数 lcm_result = np.lcm(a, b) print("数组的最小公倍数:", lcm_result)
以下是得到的输出 −
数组的最小公倍数:[12 24 40]
NumPy lcm() 函数与标量一起使用
numpy.lcm() 函数也可以与标量值一起使用,计算两个单个整数的最小公倍数 (LCM)。它的工作方式与数组相同,返回给定标量的最小公倍数 (LCM)。
示例
在下面的示例中,我们使用 numpy.lcm() 函数来查找两个标量值的最小公倍数 −
import numpy as np # 定义两个标量 a = 15 b = 20 # 计算标量的最小公倍数 lcm_result = np.lcm(a, b) print("标量的最小公倍数:", lcm_result)
这将产生以下结果 −
标量的最小公倍数: 60
多维的最小公倍数数组
numpy.lcm() 函数也可以应用于多维数组。它计算数组中每个对应元素的最小公倍数 (LCM),处理任何形状的数组,只要它们可以广播到相同的形状即可。
示例
在下面的示例中,我们使用 numpy.lcm() 函数逐个元素计算两个二维数组的最小公倍数 −
import numpy as np # 定义两个二维数组 a = np.array([[3, 4], [5, 6]]) b = np.array([[6, 8], [10, 12]]) # 计算逐个元素的最小公倍数 lcm_result = np.lcm(a, b) print("二维数组的最小公倍数: ", lcm_result)
结果如下 −
二维数组的最小公倍数: [[ 6 8] [10 12]]
NumPy lcm.reduce() 函数
numpy.lcm.reduce() 函数计算数组元素沿指定轴的最小公倍数。这对于查找数组中多个元素的最小公倍数 (LCM) 非常有用。
示例
在下面的示例中,我们使用 numpy.lcm.reduce() 函数来查找数组中所有元素的最小公倍数 -
import numpy as np # 定义一个数组 a = np.array([12, 15, 20]) # 计算所有元素的最小公倍数 lcm_result = np.lcm.reduce(a) print("所有元素的最小公倍数:", lcm_result)
这将产生以下结果 -
所有元素的最小公倍数:60