NumPy - 乘积通用函数 (ufunc)
乘积通用函数 (ufunc)
NumPy 中的乘积通用函数 (ufunc) 是用于计算数组中元素乘积的函数。
此运算将所有元素相乘,可以是整个数组,也可以是沿特定轴(例如行或列)的乘积。NumPy 中主要的乘积通用函数是 numpy.prod() 函数。
NumPy 乘积函数
numpy.prod() 函数用于计算数组元素沿指定轴的乘积。它可以计算数组中所有元素的乘积,也可以计算特定轴(例如,按行或按列)上的乘积。
示例
在以下示例中,我们使用 numpy.prod() 函数计算数组中元素的乘积 -
import numpy as np # 定义一个数组 a = np.array([[1, 2, 3], [4, 5, 6]]) # 计算所有元素的乘积 total_product = np.prod(a) # 计算列上的乘积 column_product = np.prod(a, axis=0) # 计算行上的乘积 row_product = np.prod(a, axis=1) print("总乘积:", total_product) print("按列乘积:", column_product) print("按行乘积:", row_product)
以下是得到的输出 −
总乘积:720 按列乘积:[ 4 10 18] 按行乘积:[ 6 120]
NumPy 累积乘积
numpy.cumprod() 函数用于计算数组元素沿指定轴的累积乘积。它返回一个数组,其中每个元素都是前几个元素的累积乘积。
示例
在下面的示例中,我们使用 numpy.cumprod() 函数计算数组中元素的累积乘积 -
import numpy as np # 定义一个数组 a = np.array([1, 2, 3, 4, 5]) # 计算累积乘积 cumulative_product = np.cumprod(a) print("累积乘积:", accumulated_product)
这将产生以下结果 -
累积乘积:[ 1 2 6 24 120]
NumPy Product with条件
numpy.prod() 函数也可以与条件语句一起使用,计算满足特定条件的元素的乘积。
示例
在以下示例中,我们使用 numpy.prod() 函数计算大于指定值的元素的乘积 -
import numpy as np # 定义一个数组 a = np.array([1, 2, 3, 4, 5]) # 计算大于 2 的元素的乘积 conditional_product = np.prod(a[a > 2]) print("大于 2 的元素的乘积:", conditional_product)
结果如下 −
大于 2 的元素的乘积:60
使用 NumPy ufuncs 进行矩阵乘积
NumPy 中的矩阵乘积是指将两个矩阵相乘,遵循线性代数的规则。此操作使用 numpy.matmul() 函数或 @ 运算符完成,它们计算两个数组的点积。
示例
在此示例中,np.matmul() 函数执行 matrix1 和 matrix2 的矩阵乘法,得到一个新矩阵 -
import numpy as np # 定义两个二维数组(矩阵) matrix1 = np.array([[1, 2], [3, 4]]) matrix2 = np.array([[5, 6], [7, 8]]) # 执行矩阵乘法 result = np.matmul(matrix1, matrix2) 打印结果
我们得到如下所示的输出 -
[[19 22] [43 50]]
NumPy 点积和叉积
点积计算两个数组中对应元素乘积的和,而叉积则在三维空间中找到一个与两个输入向量垂直的向量。
NumPy 提供了 numpy.dot() 函数用于计算点积,以及 numpy.cross() 函数用于计算叉积。
示例
在此示例中,np.dot() 函数计算两个向量 vector1 和 vector2 的点积 -
import numpy as np # 定义两个一维数组(向量) vector1 = np.array([1, 2, 3]) vector2 = np.array([4, 5, 6]) # 计算点积 dot_result = np.dot(vector1,vector2) print(dot_result)
以下是得到的输出 −
32
NumPy 元素级乘积运算
NumPy 中的元素级乘积运算涉及将两个数组的对应元素相乘。这可以通过 numpy.multiply() 函数或 * 运算符完成,它对于数组中值的缩放等操作非常有用。
示例
在以下示例中,np.multiply() 函数将 array1 和 array2 中对应的元素逐个相乘 -
import numpy as np # 定义两个数组 array1 = np.array([1, 2, 3]) array2 = np.array([4, 5, 6]) # 执行逐个元素乘法 product = np.multiply(array1, array2) print(product)
这将产生以下结果 -
[ 4 10 18]