np.cumprod() # 累乘函数用于计算给定轴上数组元素的累乘
np.cumsum() # 累加函数用于计算给定轴上数组元素的累加
语法:
np.cumprod(arr, axis=None, dtype=None, out=None)
arr :[数组]包含需要累积乘积的数字的数组。如果arr不是数组,则尝试进行转换,数组为list。
axis :计算累积乘积的轴。默认值是计算展平数组的乘积。
dtype :返回数组的类型,以及与元素相乘的累加器的类型。如果未指定dtype,则默认为arr的dtype,除非arr的整数dtype的精度小于默认平台整数的精度。在这种情况下,将使用默认平台整数。
out :[ndarray,可选]将结果存储到的位置。
注意:累乘和累加的用法是一样的。
例子:
第一种情况:axis=0按列计算累积
import numpy as np
list1 = np.array([
[1, 2, 3],
[4, 5, 6],
[7, 8, 9],
])
result1 = np.cumprod(list1, axis=0) # axis=0 按列计算累积
print(result1)
返回的结果:
[[ 1 2 3]
[ 4 10 18]
[ 28 80 162]]
第二种情况:axis=1按行计算累积
list2 = np.array([
[1, 2, 3],
[4, 5, 6],
[7, 8, 9],
])
result2 = np.cumprod(list2, axis=1) # axis=1按行计算累积
print(result2)
返回的结果:
[[ 1 2 6]
[ 4 20 120]
[ 7 56 504]]
第三种情况:axis=None,整体计算累积
list3 = np.array([
[1, 2, 3],
[4, 5, 6],
[7, 8, 9],
])
result3 = np.cumprod(list3) # 默认参数axis=None,整体计算累积
print(result3)
返回的结果:
[ 1 2 6 24 120 720 5040 40320 362880]
此时,如果我想在list1里面的列表每一个元素都+1怎么办呢?
其实很简单,只需要在矩阵中所有元素+1就可以,如:
list1 = np.array([
[1, 2, 3],
[4, 5, 6],
[7, 8, 9],
]) +1
print(list1)
返回结果:
[[ 2 3 4]
[ 5 6 7]
[ 8 9 10]]
拓展知识:
numpy.prod()函数:用来计算所有元素的乘积
numpy.sum()函数:用来计算所有元素的和
这两个函数的用法跟np.cumprod()和np.cumsum()是一样的