python的map和reduce函数
map函数时python的高级内置函数
语法为:map(function, iterable, ...)
参数:
function -- 函数
iterable -- 一个或多个序列
将function作用于iterable序列中的每一个元素,并将调用的结果返回
主要是为了并行运算,非常高效
1. 一个输入参数,输入为列表
- # 1. 一个参数
- def map_func(x):
- res = x**2
- return res
- a1 = map(map_func, [1,2,3]) #直接返回的是object,例如 <map object at 0x000001FEF3457438>
- print(a1)
- print(list(a1)) #强制转换:[1, 4, 9]
2. 一个输入参数,输入为元组
- a2 = map(map_func, (1,2,3))
- print(a2)
3. 两个输入参数
- # 2. 两个参数
- def map_func_2(x,y):
- res = x+y
- return res
- a3 = map(map_func_2, [1,2,3],[1,2,3]) #同时从两个序列中取出相同位置的元素,进行运算;但是两个参数不同长度时会报错
- print(a3)
- print(list(a3)) # 输出为:[2, 4, 6]
4. 使用int等类型函数
- # 4. 典型应用:int等类型函数
- a4 = map(int, [1.5,2.1,3.0]) #同时从两个序列中取出相同位置的元素,进行运算;但是两个参数不同长度时会报错
- print(list(a4)) #输出:[1, 2, 3]
- a5 = map(int, '') #将字符串元素变成整数
- print(list(a5)) #输出:[1, 2, 3, 0, 6]
5. 使用lambda表达式
- # 5. 使用lambda函数,x为参数,x**2属于lambda表达式的返回值
- a6 = map(lambda x: x ** 2, [1, 2, 3])
- print(a6)
- print(list(a6)) # 输出:[1, 4, 9]
reduce函数,与map函数类似,注意在Python3中reduce不再是内置函数,而是集成到了functools中,需要:from functools import reduce
函数将一个数据集合(列表,元组等)中的所有数据进行下列操作:用传给 reduce中的函数 function(二元函数,两个参数),先对集合中的第 1、2 个元素进行操作,得到的结果再与第三个数据用 function 函数运算,依次进行下去直到最后。
用法:reduce(function, iterable[, initializer])
参数:
function -- 函数,有两个参数
iterable -- 可迭代对象
initializer -- 可选,初始参数
1. "减少"为一个值
- from functools import reduce
- def add_2(x, y):
- return x+y
- a7 = reduce(add_2, [1,2,3]) #得到的是一个值,依次执行add_2(1,2),对结果和3执行add_2(add_2(1,2),3),有点类似递归运算
- print(a7) #输出为:6
2. lambda表达式调用
- # lambda函数使用, x,y为参数,x+y为lambda表达式的返回值
- a8 = reduce(lambda x, y: x+y, [1,2,3]) #得到的是一个值,先调用参数1,2,然后对结果和3继续使用
- print(a8) #输出为:6
3. 减少矩阵维度
- # 减少矩阵维度
- import numpy as np
- tmp = np.mat([[1,2,3],[4,5,6],[7,8,9]])
- print(tmp)
- # 输出为:
- # [[1 2 3]
- # [4 5 6]
- # [7 8 9]]
- a9 = reduce(lambda x,y: x+y, tmp) #实际是:首先[1,2,3]+[4,5,6] = [5,7,9];然后[5,7,9] + [7,8,9] = [12,15,18]
- print(a9) # 输出:[[12 15 18]],是(1,3)的矩阵
其中,还有filter函数也与此类似。
参考:
https://baijiahao.baidu.com/s?id=1594702528079035916&wfr=spider&for=pc
https://blog.csdn.net/wxjsjp/article/details/80638696
https://www.runoob.com/python/python-func-map.html
https://www.runoob.com/python/python-func-reduce.html
https://blog.csdn.net/ctan006/article/details/79657678
python的map和reduce函数的更多相关文章
- Python中map和reduce函数??
①从参数方面来讲: map()函数: map()包含两个参数,第一个是参数是一个函数,第二个是序列(列表或元组).其中,函数(即map的第一个参数位置的函数)可以接收一个或多个参数. reduce() ...
- python中map、reduce函数
map函数: 接受一个函数 f 和一个 list .格式:map( f , L),对L中的每个元素,进行f(x)的一个操作. 例如,对于list [1, 2, 3, 4, 5, 6, 7, 8, 9] ...
- Python中map和reduce函数
①从参数方面来讲: map()函数: map()包含两个参数,第一个是参数是一个函数,第二个是序列(列表或元组).其中,函数(即map的第一个参数位置的函数)可以接收一个或多个参数. reduce() ...
- Python【map、reduce、filter】内置函数使用说明(转载)
转自:http://www.blogjava.net/vagasnail/articles/301140.html?opt=admin 介绍下Python 中 map,reduce,和filter 内 ...
- 【转】Python 中map、reduce、filter函数
转自:http://www.blogjava.net/vagasnail/articles/301140.html?opt=admin 介绍下Python 中 map,reduce,和filter 内 ...
- Python自学笔记-map和reduce函数(来自廖雪峰的官网Python3)
感觉廖雪峰的官网http://www.liaoxuefeng.com/里面的教程不错,所以学习一下,把需要复习的摘抄一下. 以下内容主要为了自己复习用,详细内容请登录廖雪峰的官网查看. Python内 ...
- python Map()和reduce()函数
Map()和reduce()函数 map() 会根据提供的函数对指定序列做映射. 第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函 ...
- Python【map、reduce、filter】内置函数使用说明
题记 介绍下Python 中 map,reduce,和filter 内置函数的方法 一:map map(...) map(function, sequence[, sequence, ...]) -& ...
- Python map,filter,reduce函数
# -*- coding:utf-8 -*- #定义一个自己的map函数list_list = [1,2,4,8,16] def my_map(func,iterable): my_list = [] ...
随机推荐
- 工控随笔_C#连接PLC_之_C#入门_02_程序性结构和注释
前段时间看C#本质论,发现内容有点抽象,不适合入门,现在换了一本适合入门的书籍: C#图解教程. //引用命名空间,命名空间相当于一个容器,通过不同的容器来区分同名的内容 //System命名空间是. ...
- React全家桶+Material-ui构建的后台管理系统
一.简介 一个使用React全家桶(react-router-dom,redux,redux-actions,redux-saga,reselect)+Material-ui构建的后来管理中心. 二. ...
- java main方法
1.问题:Java main方法为什么是 public static void main(String[] args)??? 序号 场景 编译 运行 解释 1 public修改为private pr ...
- 使用Qt画出直方图和分位数图
https://blog.csdn.net/gudanai/article/details/72136420
- JVM方法栈的工作过程,方法栈和本地方法栈有什么区别。
JVM的本地方法栈 对于一个运行中的Java程序而言,它还可能会用到一些跟本地方法相关的数据区.当某个线程调用一个本地方法时,它就进入了一个全新的并且不再受虚拟机限制的世界.本地方法可以通过本地方 ...
- Three.js场景的基本组件
1.场景Scene THREE.Scene被称为场景图,可以用来保存所有图形场景的必要信息.每个添加到Scene的对象,包括Scene自身都继承自名为THREE.Object3D对象.Scene不仅仅 ...
- C++四大特性之封装
C++四大特性 C++作为面向对象编程语言,具备面向对象编程(Object Oriented Programming,OOP,面向对象程序设计)的四大特性.抽象,封装,继承,多态. 所谓抽象,就是对具 ...
- go标准库I/O模型:epoll+多协程
本文为linux环境下的总结,其他操作系统本质差别不大.本地文件I/O和网络I/O逻辑类似. epoll+多线程的模型 epoll+多线程模型和epoll 单进程区别.优点 对比于redis这 ...
- 小程序canvas绘制base64数据格式图片
翻了微信小程序官方文档,看了看画板drawImage的用法,官方对所要绘制的图片资源路径并没有很详细,模棱两可,没说支持什么格式的路径.今天我就试一下支不支持base64格式的图片 随便找张图片从网上 ...
- Huber Loss 介绍
Huber Loss 是一个用于回归问题的带参损失函数, 优点是能增强平方误差损失函数(MSE, mean square error)对离群点的鲁棒性. 当预测偏差小于 δ 时,它采用平方误差,当预测 ...