NumPy cumprod – 完整指南

您好,欢迎来到本关于 Numpy cumprod的教程。在本教程中,我们将学习 NumPy cumprod() 方法,并看到很多相关示例。那么让我们开始吧!

另请阅读:NumPy cumsum – 完整指南


什么是 NumPy cumprod?

累积乘积是  给定序列的部分乘积的序列。如果 {a, b, c, d, e, f,…..} 是一个序列,则其累积乘积表示为 {a, a*b, a*b*c, a*b*c*d,… .} .

NumPy 中的方法 cumprod() 返回输入数组的元素沿指定轴的累积乘积。它可以是展平数组的累积乘积、数组元素沿行的累积乘积或数组元素沿列的累积乘积。 

我们将在本教程的后续部分中看到每个示例的示例。


NumPy cumprod 的语法

numpy.cumprod(a, axis=None, dtype=None, out=None)
范围 描述 必需/可选
A 输入数组。 必需的
计算数组累积乘积的轴。它可以是 axis=0 即沿着列,或者 axis=1 即沿着行或者 axis=None,这意味着要返回展平数组的累积乘积。 选修的
dtype(数据类型) 要返回的数组的数据类型。 选修的
出去 用于放置结果的替代输出数组。它必须具有与预期输出相同的形状和长度。 选修的

返回:
包含输出的新数组。如果 提到了out  ,则返回对其的引用。


numpy.cumprod 方法的示例

现在让我们开始使用 numpy.cumprod 方法,以便我们可以理解输出。

单个元素的累积乘积

import numpy as np
 
a = 5
ans = np.cumprod(a)
 
print("a =", a)
print("Cumulative product =", ans)

输出:

a = 5
Cumulative product = [5]

空数组的累积乘积

import numpy as np
 
a = []
ans = np.cumprod(a)
 
print("a =", a)
print("Cumulative product =", ans)

输出:

a = []
Cumulative product = []

一维数组的累积乘积

import numpy as np
 
a = [2, 10, 3 ,6]
ans = np.cumprod(a)
 
print("a =", a)
print("Cumulative product of the array =", ans)

输出:

a = [2, 10, 3, 6]
Cumulative product of the array = [  2  20  60 360]

这里,累积乘积计算为2、2*10、2*10*3、2*10*3*6,即2、20、60、360。


二维数组的累积乘积

import numpy as np
 
a = [[8, 3], [5, 2]]
ans = np.cumprod(a)
 
print("a =", a)
print("Cumulative product of the array =", ans)

输出:

a = [[8, 3], [5, 2]]
Cumulative product of the array = [  8  24 120 240]

对于二维数组,当没有提到轴时,首先将数组展平,然后计算其累积乘积。
在上面的例子中,数组首先被展平为 [8, 3, 5, 2] 即逐行,然后其累积乘积计算为 [8, 8*3, 8*3*5, 8*3*5 *2] 产生函数返回的数组 [8, 24, 120, 240]。


将数组的 Numpy.cumprod() 返回为 float 数据类型

这与上面的示例相同,只是这里返回的值是浮点数据类型。

import numpy as np
 
a = [2, 10, 3, 6]
ans = np.cumprod(a, dtype=float)
 
print("a =", a)
print("Cumulative product of the array =", ans)

输出:

a = [2, 10, 3, 6]
Cumulative product of the array = [  2.  20.  60. 360.]

沿轴的累积乘积

轴 = 0

import numpy as np
 
a = [[3, 2, 1], [4, 5, 6]]
# cumulative product along axis=0
ans = np.cumprod(a, axis=0)
 
print("a =\n", a)
print("Cumulative product of the array =\n", ans)

输出:

a =
 [[3, 2, 1], [4, 5, 6]]
Cumulative product of the array =
 [[ 3  2  1]
 [12 10  6]]

此处,第一行保持原样,第二行包含计算为 3*4、2*5、1*6 的累积乘积,结果为 12、10 和 6。

轴 = 1

import numpy as np
 
a = [[3, 2, 1], [4, 5, 6]]
# cumulative product along axis=1
ans = np.cumprod(a, axis=1)
 
print("a =\n", a)
print("Cumulative product of the array =\n", ans)

输出:

a =
 [[3, 2, 1], [4, 5, 6]]
Cumulative product of the array =
 [[  3   6   6]
 [  4  20 120]]

此处,第一列保持原样,第二列包含计算为 3*2, 4*5 的累积乘积,结果为 6, 20,第三列包含累积乘积 3*2*1, 4*5* 6即6和120。


概括

就这样!在本教程中,我们了解了 Numpy cumprod 方法,并使用该方法练习了不同类型的示例。


参考