python中map()和reduce()函数的区别

本文详细解析了Python中map()和reduce()函数的区别及应用。map()用于对列表中的每个元素执行相同的操作并返回相同长度的新列表。而reduce()则用于对列表中的元素进行累积操作,最终返回单一结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

python中map()和reduce的区别

问题来源

在使用深度学习(dl)框架时,使用函数tf.reduce_mean()后,产生了疑问,为了弄清楚其具体的意义,查找了一些资料。这里我用更直白的方式向大家解释一下python中map()reduce()的用法和区别。

map()和reduce()的区别

一句话

map()是对一个向量/矩阵中每个元素同时进行某一操作返回值与原向量维度相同
reduce()是对向量/矩阵一个序列中的元素依次进行某一操作,返回一个数值

实例

map()

a = [2,4,6,8]
print map(lambda x:2*x, a)

结果为:[4, 8, 12, 16]
map()函数的操作,是对向量a中的每个元素,都做 2x 的操作。

reduce()

a = [1,2,3,4]
print reduce(lambda x,y:x+y,a)

结果为:20
reduce()函数的操作,从第一个元素开始,将每个元素累加。换句话说,
step1:第一个元素与第二个元素相加: 2+4 得到 6
step2:step1结果和第三个元素相加:6+6 得到 12
step3:step2结果和第四个元素相加: 12+8 得到 20

拓展

tf.reduce_mean()

这是tensorflow官方文档tf.reduce_mean()函数的说明

reduce_mean(input_tensor,reduction_indices=None,keep_dims=False, name=None)
input_tensor: The tensor to reduce. Should have numeric type.
reduction_indices: The dimensions to reduce. If None (the defaut), reduces all dimensions.
# x is [[1., 1. ]]
# [2., 2.]]
tf.reduce_mean(x) ==> 1.5
tf.reduce_mean(x, 0) ==> [1.5, 1.5]
tf.reduce_mean(x, 1) ==> [1., 2.]

input_tensor是输入的张量。
redunction_indices进行求平均操作的维度,默认为对张量中所有元素求平均

因此不指定参数时,输出值为 1.5

指定indice为0时,对每一列中的所有元素求平均,输出结果为 [1.5,1.5]

指定indice为1时,对每一行中的所有元素求平均,输出结果为 [1.,2.]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值