python中reduce()函数的使用方法示例
前言
本文主要给大家介绍了关于python中reduce()函数使用的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍:
reduce()函数在库functools里,如果要使用它,要从这个库里导入。reduce函数与map函数有不一样地方,map操作是并行操作,reduce函数是把多个参数合并的操作,也就是从多个条件简化的结果,在计算机的算法里,大多数情况下,就是为了简单化。比如识别图像是否是一只猫,那么就是从众多的像素里提炼出来一个判断:是或否。可能是几百万个像素,就只出来一个结果。在GOOGLE大规模集群里,就是利用这个思想,把前面并行处理的操作叫做map,并行处理之后的结果,就需要简化,归类,把这个简化和归类的过程就叫做reduce。由于reduce只能在一台主机上操作,并不能分布式地处理,但是reduce处理的是map结果,那么意味着这些结果已经非常简单,数据量大大减小,处理起来就非常快。
因此可以把mapreduce过程叫做分析归纳的过程。
看一下面reduce()的例子:
#python 3. 6 #蔡军生 #http://blog.csdn.net/caimouse/article/details/51749579 # from functools import reduce result = reduce(lambda x, y: x+y, [1, 2, 3, 4, 5]) print(result)
输出结果:
15
在这个例子里,其实计算过程是这样的:
((((1+2)+3)+4)+5)
再看一个阶乘的例子:
#python 3. 6 #蔡军生 #http://blog.csdn.net/caimouse/article/details/51749579 # from functools import reduce n = 3 print(reduce(lambda x, y: x * y, range(1, n + 1))) # 6
输出结果:
6
reduce函数,reduce函数会对参数序列中元素进行累积。
reduce函数的定义:
reduce(function, sequence[, initial]) -> value
function参数是一个有两个参数的函数,reduce依次从sequence中取一个元素,和上一次调用function的结果做参数再次调用function。
第一次调用function时,如果提供initial参数,会以sequence中的第一个元素和initial作为参数调用function,否则会以序列sequence中的前两个元素做参数调用function。
reduce(lambda x, y: x + y, [2, 3, 4, 5, 6], 1)
结果为21( (((((1+2)+3)+4)+5)+6) )
reduce(lambda x, y: x + y, [2, 3, 4, 5, 6])
结果为20
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对我们的支持。
相关推荐
-
python中的reduce内建函数使用方法指南
官方解释: Apply function of two arguments cumulatively to the items of iterable, from left to right, so as to reduce the iterable to a single value. For example, reduce(lambda x, y: x+y, [1, 2, 3, 4, 5]) calculates ((((1+2)+3)+4)+5). The left argument, x
-
Python中的高级函数map/reduce使用实例
Python内建了map()和reduce()函数. 如果你读过Google的那篇大名鼎鼎的论文"MapReduce: Simplified Data Processing on Large Clusters",你就能大概明白map/reduce的概念. 我们先看map.map()函数接收两个参数,一个是函数,一个是序列,map将传入的函数依次作用到序列的每个元素,并把结果作为新的list返回. 举例说明,比如我们有一个函数f(x)=x2,要把这个函数作用在一个list [1, 2,
-
Python map和reduce函数用法示例
先看map.map()函数接收两个参数,一个是函数,一个是序列,map将传入的函数依次作用到序列的每个元素,并把结果作为新的list返回. 举例说明,比如我们有一个函数a(x)=x*2,要把这个函数作用在一个list [1, 2, 3, 4, 5]上,就可以用map()实现如下: 复制代码 代码如下: >>> def a(x): ... return x * 2 ... >>> map(a, [1,2,3,4,5]) [2, 4, 6, 8, 10] map传入
-
Python中map,reduce,filter和sorted函数的使用方法
map map(funcname, list) python的map 函数使得函数能直接以list的每个元素作为参数传递到funcname中, 并返回响应的新的list 如下: def sq(x): return x*x #求x的平方 map(sq, [1,3, 5,7,9]) #[1, 9, 25, 49, 81] 在需要对list中的每个元素做转换的时候, 会很方便 比如,把list中的每个int 转换成str map(str, [23,43,4545,324]) #['23', '43',
-
Python内置函数之filter map reduce介绍
Python内置了一些非常有趣.有用的函数,如:filter.map.reduce,都是对一个集合进行处理,filter很容易理解用于过滤,map用于映射,reduce用于归并. 是Python列表方法的三架马车. 1. filter函数的功能相当于过滤器.调用一个布尔函数bool_func来迭代遍历每个seq中的元素:返回一个使bool_seq返回值为true的元素的序列. >>> N=range(10) >>> print filter(lambda x:x>
-
Python中的map()函数和reduce()函数的用法
Python内建了map()和reduce()函数. 如果你读过Google的那篇大名鼎鼎的论文"MapReduce: Simplified Data Processing on Large Clusters",你就能大概明白map/reduce的概念. 我们先看map.map()函数接收两个参数,一个是函数,一个是序列,map将传入的函数依次作用到序列的每个元素,并把结果作为新的list返回. 举例说明,比如我们有一个函数f(x)=x2,要把这个函数作用在一个list [1, 2,
-
python中reduce()函数的使用方法示例
前言 本文主要给大家介绍了关于python中reduce()函数使用的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍: reduce()函数在库functools里,如果要使用它,要从这个库里导入.reduce函数与map函数有不一样地方,map操作是并行操作,reduce函数是把多个参数合并的操作,也就是从多个条件简化的结果,在计算机的算法里,大多数情况下,就是为了简单化.比如识别图像是否是一只猫,那么就是从众多的像素里提炼出来一个判断:是或否.可能是几百万个像素,就只
-
python中map()函数的使用方法示例
前言 在python里有一个函数map(),它有点高大上的感觉.本文将详细给大家介绍python中map()函数使用的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍: 或许你已经看过GOOGLE最挣钱的论文: "MapReduce: Simplified Data Processing on Large Clusters" Google的那篇MapReduce论文里说:Our abstraction is inspired by the map and redu
-
Python中reduce函数详解
目录 1 reduce用法 2 reduce与for循环性能对比 reduce函数原本在python2中也是个内置函数,不过在python3中被移到functools模块中. reduce函数先从列表(或序列)中取出2个元素执行指定函数,并将输出结果与第3个元素传入函数,输出结果再与第4个元素传入函数,…,以此类推,直到列表每个元素都取完. 1 reduce用法 对列表元素求和,如果不用reduce,我们一般常用的方法是for循环: def sum_func(arr): if len(a
-
oracle中decode函数的使用方法示例
decode的几种用法 1:使用decode判断字符串是否一样 DECODE(value,if1,then1,if2,then2,if3,then3,...,else) 含义为 IF 条件=值1 THEN RETURN(value 1) ELSIF 条件=值2 THEN RETURN(value 2) ...... ELSIF 条件=值n THEN RETURN(value 3) ELSE RETURN(default) END IF sql测试 select empno,decode(empn
-
Python中eval函数的表达式作用示例
目录 eval 是干嘛的? 语法格式 最简单的表达式栗子 带上 globals 带上 locals 字符串转字典 带上 globals 带上 locals 内置函数栗子 报错的栗子 eval 是干嘛的? 解析字符串表达式并执行,并返回一个值 语法格式 eval(expression[, globals[, locals]]) expression:表达式字符串 globals:必须是一个字典 locals:可以是任何 map 对象 最简单的表达式栗子 栗子一 print(eval("123&qu
-
python中leastsq函数的使用方法
leastsq作用:最小化一组方程的平方和. 参数设置: func 误差函数 x0 初始化的参数 args 其他的额外参数 举个例子: 首先创建样本点 import numpy as np import scipy as sp from scipy.optimize import leastsq import matplotlib.pyplot as plt plt.rcParams['font.sans-serif']=['SimHei'] plt.rcParams['axes.unicode
-
Python中range函数的使用方法
目录 1.range()函数是什么? 2.语法格式 3.报错问题 4.range()函数需要注意的 5.range对象是不可变序列 6.range函数实现逆序遍历 7.与列表list的使用 8.关于range函数小结 前言: 本篇基于Python3环境,Python2环境下的range会有所不同,但并不影响我们使用. 1.range()函数是什么? range()函数是python的内置函数,它能返回一系列连续添加的整数,能够生成一个列表对象. 大多数时常出如今for循环中,在for循环中可做为
-
Python中shape计算矩阵的方法示例
本文实例讲述了Python中shape计算矩阵的方法.分享给大家供大家参考,具体如下: 看到机器学习算法时,注意到了shape计算矩阵的方法接下来就讲讲我的理解吧 >>> from numpy import * >>> import operator >>> a =mat([[1,2,3],[5,6,9]]) >>> a matrix([[1, 2, 3], [5, 6, 9]]) >>> shape(a) (2,
-
python中open函数的基本用法示例
前言 本文主要介绍的是关于python中open函数用法的相关资料,用法如下: name = open('errname.txt','w')<br>name.readline()<br>name.close() 1.看下第一行的代码 用来访问磁盘中存放的文件,可以进行读写等操作,例如上例中 'w',这里便是对errname.txt这个文件进行读操作 例如: w:以写方式打开 a:以追加方式打开 r+:以读写模式打开 w+:以读写模式打开 rb:以二进制读模式打开 wb:以二进制写模
-
Python pandas自定义函数的使用方法示例
本文实例讲述了Python pandas自定义函数的使用方法.分享给大家供大家参考,具体如下: 自定义函数的使用 import numpy as np import pandas as pd # todo 将自定义的函数作用到dataframe的行和列 或者Serise的行上 ser1 = pd.Series(np.random.randint(-10,10,5),index=list('abcde')) df1 = pd.DataFrame(np.random.randint(-10,10,(
随机推荐
- 解决preg_match匹配过多字符长度的限制的思路分析
- PHP清除字符串中所有无用标签的方法
- PHP屏蔽过滤指定关键字的方法
- flex复选框和下拉列表的几种用法整理
- Farpoint的简单用法简要概述
- Ionic2调用本地SQlite实例
- ES6新数据结构Set与WeakSet用法分析
- jsp Hibernate入门教程第1/3页
- MySQL 存储过程的基本用法介绍
- javascript日期对象格式化为字符串的实现方法
- JavaScript加强之自定义event事件
- javascript函数中参数传递问题示例探讨
- Shell编程之Shell变量学习总结
- nodejs中操作mysql数据库示例
- Javascript中toFixed计算错误(依赖银行家舍入法的缺陷)解决方法
- ipfilter+ipnat包过滤、转发和DHCP服务器架构笔记
- 在局域网共享中- 隐形的文件
- Android Studio使用小技巧:提取方法代码片段
- c语言swap(a,b)值交换的4种实现方法
- 基于DownloadManager的简单下载器编写小结