在python3中如果使用reduce()函数需要先导入
from functools import reduce
reduce函数会对参数序列中元素进行累积。
与 map 函数不同,reduce 执行迭代的二元运算,只输出一个单值。
reduce函数的定义:
reduce(function, sequence [, initial] ) -> value
function参数是一个有两个参数的函数,reduce依次从sequence中取一个元素,和上一次调用function的结果做参数再次调用function。
第一次调用function时,如果提供initial参数,会以sequence中的第一个元素和initial作为参数调用function,否则会以序列sequence中的前两个元素做参数调用function。
print(reduce(lambda x,y: x+y, [1,2,3,4,5]))
结果为:15
print(reduce(lambda x,y: x+y, [1,2,3,4,5],8))
结果为:23
print(reduce(lambda x,y: x*y, [1,2,3,4,5]))
结果为:120
注意:与np.cumsum()的区别
print(np.cumsum([1,2,3,4,5]))
结果为:[ 1 3 6 10 15]
print(np.cumsum([[1,2,3,4,5],[3,4,5,2,4]],))
结果为:
[ 1 3 6 10 15 18 22 27 29 33]
print(np.cumsum([[1,2,3,4,5],[3,4,5,2,4]],axis=1))
结果为:
[[ 1 3 6 10 15]
[ 3 7 12 14 18]]
print(np.cumsum([[1,2,3,4,5],[3,4,5,2,4]],axis=0))
结果为:
[[1 2 3 4 5]
[4 6 8 6 9]]