Python函数式编程(高阶函数 <map/reduce filter sorted> 返回函数 匿名函数 装饰器 偏函数)

AI智能体丨使用Coze生成自媒体短视频分镜生成器(附保姆级教程) 【短视频分镜脚本生成器】是一款由Coze平台开发出来的智能体,可快速解析某音/某书视频或本地文件,自动生成专业分镜脚本。用户只需输入视频链接或上传文件,系统即会分析镜头节奏、叙事逻辑和画面内容,输出包含画面、模板和话术参考的标准化脚本(支持3分钟内视频)。该工具还能生成HTML网页和可下载图片,提供可视化呈现。工作流程包括视频解析、帧提取、AI画面理解、脚本生成和网页制作,大幅提升短视频创作效率。 阅读详情

函数式编程

将业务逻辑细化,抽象,封装成一个个功能函数,并借助语言自带的高阶函数api,将整个业务流程转化为函数之间的相互调用,这就是函数式编程。
对比:将业务逻辑细化,抽象,封装成一个个对象,并借助语言,库,组件,框架等,将整个业务流程转化为对象之间的相互调用,这就是面向对象编程。

  1. 函数式编程的一个特点就是,允许把函数本身作为参数传入另一个函数,还允许返回一个函数!

  2. Python对函数式编程提供部分支持。由于Python允许使用变量,因此,Python不是纯函数式编程语言。

高阶函数

把函数作为参数传入,这样的函数称为高阶函数,函数式编程就是指这种高度抽象的编程范式。变量可以指向函数,函数名也是变量,函数名其实就是指向函数的变量!

map/reduce

  1. map()函数接收两个参数,一个是函数,一个是Iterable,map将传入的函数(只写函数名即可)依次作用到序列的每个元素,并把结果作为新的Iterator返回。map(函数,Iterable)
    reduce把一个函数作用在一个序列[x1, x2, x3, …]上,这个函数必须接收两个参数,一个是函数,一个是序列。reduce把结果继续和序列的下一个元素计算。使用reduce记得导包。reduce(函数,序列)

练习代码:

map() //对数据执行分批并行操作
reduce() //对操作所有返回值求结果
#str转换为int的函数
def char2num(s):
    return {'0':0,'1':1,'2':2,'3':3,'4':4,'5':5,'6':6,'7':7,'8':8,'9':9}[s]
def str2int(s):
    return reduce(lambda x,y:x*10+y,map(char2num,s))
print(str2int('13579'))
#上面的return {'0':0,'1':1,'2':2,'3':3,'4':4,'5':5,'6':6,'7':7,'8':8,'9':9}[s]也就是说,可以把{'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9}看成是一个字典,s是key,函数通过s参数查找字典中的key,进而获取value,返回value的值。
利用map()函数,把用户输入的不规范的英文名字,变为首字母大写,其他小写的规范名字。
# 输入:['adam', 'LISA', 'barT'],输出:['Adam', 'Lisa', 'Bart']

def normalize(name):
    return name[0].upper() + name.lower()[1:]
for n in map(normalize,['adam', 'LISA', 'barT']):  #iterator输出需要借助for循环
    print(n)
#请编写一个prod()函数,可以接受一个list并利用reduce()求积
from functools import reduce

def fun(x,y):
    return x*y #计算方法
def prod(L):
    return reduce(fun, L) #reduce(lambda x,y:x*y,L)
list = [1,3,5]
print(prod(list))
 #str转换为int的函数
from functools import reduce
def char2num(s):
    return {'0':0,'1':1,'2':2,'3':3,'4':4,'5':5,'6':6,'7':7,'8':8,'9':9}[s]
 # 也就是说,可以把{'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9}看成是一个字典,
 # s是key,函数通过s参数查找字典中的key,进而获取value,返回value的值。
def str2int(s):
    return reduce(lambda x,y:x*10+y,map(char2num,s))
print(str2int('13579'))
# 利用map和reduce编写一个str2float函数,把字符串'123.456'转换成浮点数123.456:
from functools import reduce

def str2flost(s):
    def char2num(s):
        return {'0':0,'1':1,'2':2,'3':3,'4':4,'5':5,'6':6,'7':7,'8':8,'9':9,}[s]
    return (reduce(lambda x,y:x*10+y,map(char2num, s.split('.')[0]))
                 + reduce(lambda x,y:x*10+y, map(char2num, s.split('.')[1])) / 10 ** len(s.split('.')[1]))
print(str2flost('123.456'))

'''
s.split('.')[0] -> 以'.'为分隔符,并取序列为0的项。

10 ** len(s.split('.')[1] ->由于后面拼接的小数部分,所以需要除以(10的小数位数的次方)
'''

filter(筛选器)

Python内建的filter()函数用于过滤序列。

  1. 和map()类似,filter()也接收一个函数和一个序列。和map()不同的是,filter()把传入的函数依次作用于每个元素,然后根据返回值是True还是False决定保留还是丢弃该元素。

  2. filter(函数,序列) ->不满足函数方法的序列(函数返回False)会被删除,满足的(True)将会保留。

  3. filter()函数返回的是一个Iterator,也就是一个惰性序列,所以要强迫filter()完成计算结果,需要用list()函数获得所有结果并返回list。

#用filter求素数
def _odd_iter(): #奇数生成器
    n = 1
    while True:
        n = n + 2
        yield n

def _not_divisible(n): #筛选函数,不能被1,3,5,...整除
    return lambda x: x % n > 0

def primes():  #输出质数
    yield 2
    it = _odd_iter() #初始序列
    while True:
        n = next(it) #返回序列第一个数
        yield n
        it = filter(_not_divisible(n),it) #构造新序列
#打印1000以内的素数
for n in primes():
    if n < 1000:
        print(n)
    else:
        break
  1. filter()的作用是从一个序列中筛出符合条件的元素。由于filter()使用了惰性计算,所以只有在取filter()结果的时候,才会真正筛选并每次返回下一个筛出的元素。
#回数是指从左向右读和从右向左读都是一样的数,例如12321,909。请利用filter()滤掉非回数:
# -*- coding: utf-8 -*-
is_palindrome = lambda num: str(num) == str(num)[::-1] #步长为-1则从右往左第1个(最右一个为-1)开始

# 测试:
output = filter(is_palindrome, range(1, 1000))
print(list(output))

sorted

Python内置的sorted()函数就可以对list进行排序。用sorted()排序的关键在于实现一个映射函数。

  1. sorted()函数也是一个高阶函数,它可以接收一个key函数来实现自定义的排序,key指定的函数将作用于list的每一个元素上,并根据key函数返回的结果进行排序。

  2. 默认情况下,对字符串排序,是按照ASCII的大小比较的。

  3. 要进行反向排序,不必改动key函数,可以传入第三个参数reverse=True。

#请用sorted()对L列表分别按名字排序
L = [('Bob', 75), ('Adam', 92), ('Bart', 66), ('Lisa', 88)] #并非键值对
'''
def by_name(L):
    return L[0]
print(sorted(L,key=by_name)) #注意key=函数名,而不是调用函数:TypeError: 'tuple' object is not callable
'''
#lambda
print(sorted(L,key = lambda x:x[0]))

#按成绩排序
print(sorted(L,key=lambda x:x[1],reverse =True))#第三个参数实现反向排序,注意要写在sorted方法里

返回函数

高阶函数除了可以接受函数作为参数外,还可以把函数作为结果值返回。一个函数可以返回一个计算结果,也可以返回一个函数。返回一个函数时,牢记该函数并未执行,返回函数中不要引用任何可能会变化的变量。

  1. 当一个函数返回了一个函数后,其内部的局部变量还被新函数引用。

  2. 返回的函数并没有立刻执行,而是直到调用了f()才执行。(f=外部函数)

  3. 闭包:引用了自由变量的函数。

  4. 返回闭包时牢记的一点就是:返回函数不要引用任何循环变量,或者后续会发生变化的变量。如果一定要引用循环变量怎么办?方法是再创建一个函数,用该函数的参数绑定循环变量当前的值,无论该循环变量后续如何更改,已绑定到函数参数的值不变。可利用lambda缩短代码。

def build(x, y):  #传入参数
    return lambda: x * x + y * y
f =build(1,2) #不会直接出结果
print(f())

匿名函数

关键字lambda表示匿名函数,冒号前面的x表示函数参数。

  1. 匿名函数有个限制,就是只能有一个表达式,不用写return,返回值就是该表达式的结果。

  2. 用匿名函数有个好处,因为函数没有名字,不必担心函数名冲突。此外,匿名函数也是一个函数对象,也可以把匿名函数赋值给一个变量,再利用变量来调用该函数。f=lambda x:x*x

  3. 同样,也可以把匿名函数作为返回值返回。如:

def build(x, y):
    return lambda: x * x + y * y #参数(x,y)在函数中传入
f =build(1,2)
print(f())
  1. Python对匿名函数的支持有限,只有一些简单的情况下可以使用匿名函数。

装饰器

在代码运行期间动态增加功能的方式,称之为“装饰器”(Decorator)。

  1. 函数对象有一个name属性,可以拿到函数的名字。

  2. 在面向对象(OOP)的设计模式中,decorator被称为装饰模式。OOP的装饰模式需要通过继承和组合来实现,而Python除了能支持OOP的decorator外,直接从语法层次支持decorator。Python的decorator可以用函数实现,也可以用类实现。

  3. 本质上,decorator就是一个返回函数的高阶函数。

#请编写一个decorator,能在函数调用的前后打印出'begin call'和'end call'的日志。
import functools

def log(text):
    def decorator(func):
        @functools.wraps(func)  #wrapper.__name__ = func.__name__
        def wrapper(*args, **kw):
            print(text)
            print('begin call')
            func(*args,**kw)
            print('end call')
        return wrapper #只返回函数名
    return decorator
@log("excute")
def now():
    print("2015-02-56")
now()

不是很理解,以后再补充。

偏函数

偏函数和数学意义上的偏函数不一样,偏函数通过设定参数的默认值,可以降低函数调用的难度。

  1. functools.partial就是帮助我们创建一个偏函数的,简单总结functools.partial的作用就是,把一个函数的某些参数给固定住(也就是设置默认值),返回一个新的函数,调用这个新函数会更简单。

  2. 创建偏函数时,实际上可以接收函数对象、* args和 * *kw这3个参数。

  3. 当函数的参数个数太多,需要简化时,使用functools.partial可以创建一个新的函数,这个新函数可以固定住原函数的部分参数,从而在调用时更简单。

#int()函数可以把字符串转换为整数,当仅传入字符串时,int()函数默认按十进制转换;
#int()函数还提供额外的base参数,默认值为10。如果传入base参数,就可以做N进制的转换

import functools

int2 = functools.partial(int,base =2) #将二进制转换为十进制
print(int2('1000'))

学习网站:www.liaoxuefeng.com

(11-3-01 ) 以太坊(Ethereum)是一种基于区块链技术的开源平台和加密货币。它于2015年由Vitalik Buterin和Gavin Wood等开发者创建,并成为比特币之后最受欢迎的加密货币之一。以太坊不仅支持加密货币交易,还为开发者和企业提供了构建去中心化应用程序的强大工具。在本节的内容中,将实型一个完整的机器学习模型项目,智能检测出以太坊区块链中的非法账户。从问题定义到模型建立和评估,再到最终的总结和建议。本实例突出了处理类别不平衡问题的重要性,并展示了如何使用多种机器学习算法来解决实际问题。此外,通过数据可 阅读详情

相关推荐

USRP B210 运行gnuradio时 FPGA固件版本冲突错误解决方法

事情起源于昨天拿到USRP后开始调试,结果整了一个下午都没解决这个问题。 昨天晚上自己思考了一下,觉得还是版本问题。 首先,uhd_find_devices和uhd_usrp_probe均可以正常运行,没有报错,固件正常加载,序列号也可看到。 teray@teray-X550JK:~$ uhd_find_devices [INFO] [UHD] linux; GNU C++ version 7.5...

斯哈研究所 4243

Python map以及reduce函数

# -*- coding: utf-8 -*- # 函数作为参数传入,这样的函数称为高阶函数,函数式编程就是指这种高度抽象的编程范式 from functools import reduce def normalize(name): name = str.capitalize(name) return name l1 = ['adam', 'LISA', 'barTa'] l...

PYDAILY的随笔 345

Synopys 验证系列-EDA 总结

VC Formal 解决方案包括一整套正式应用程序 (App),包括属性验证 (FPV)、自动提取属性 (AEP)、覆盖分析器 (FCA)、连接性检查 (CC)、时序等效性检查 (SEQ)、寄存器验证 (FRV)、测试平台分析仪 (FTA)、形式导航器 (NAV) 以及用于验证标准总线协议的一组断言 IP (AIP)。

qq_41289491的博客 1427

Python 高阶函数map、reduce、filter、sorted

今天和大家聊一聊Python 中的高阶函数:map、reduce、filter、sorted首先了解一下什么是高阶函数, 高阶函数 就是让函数的参数能够接受别的函数,比如: 1 def add(x, y, f): 2 return f(x) + f(y) 3 4 result = add(-5, 6, abs) 5 print(result) # 11...

weixin_30481087的博客 188

Vivado静态时序分析学习笔记(1)

静态时序分析分为片内时序分析(寄存器与寄存器之间的时序关系)和片外时序分析(IO时序分析)。(1)建立时间 setup time在时钟事件(上升沿/下降沿)发生之前数据信号应保持稳定的时间。把实际电路抽象成前级D触发器+组合逻辑+后级D触发器。

Fantaasky的博客 4376

PFC中pb模型实战:从胶结参数设置到破坏模拟全流程解析

本文详细解析了PFC软件中平行胶结模型(PB模型)的实战应用全流程。从胶结参数(pb_kn, pb_ks, pb_ten等)的物理意义与精准赋值入手,深入探讨了模型构建、胶结施加以避免初始损伤的技巧,并系统介绍了破坏过程的监测、阈值判定方法以及高级可视化与常见问题诊断。旨在帮助岩土工程与颗粒材料研究者掌握从参数调试到破坏模拟的核心操作,提升数值模拟的准确性与效率。

php55的博客 1074

python 中map()函数的使用方法(重点)_python map函数(23)

https://www.xin3721.com/eschool/pythonxin3721/截至到目前为止,其实我们已经接触了不少的python内置函数,而map函数也是其中之一,map函数是根据指定函数对指定序列做映射,在开发中使用map函数也是有效提高程序运行效率的办法之一.一.语法定义'''function:函数名iterable:一个序列或者多个序列,实际上这就是function对应的实参...

weixin_32247455的博客 887

【Cadence】stb仿真和ac仿真——以一个简单的全差分反相放大器仿真为例

最近在补一些仿真方法学的问题,以及一些一直以来都有点模糊的概念,简单记录一下。搭建一个以两个CMOS反相器构成的全差分放大器(28nm工艺,PMOS和NMOS尺寸一致)激励的设置方便共模和差模仿真用同一个TB(这里有一个问题:这个放大器需要在开环下仿真还是闭环下?哪些放大器应用在开环,哪些闭环?这种应用场景不同会导致需要仿真得到开环还是闭环增益,或者环路增益?(我知道放大器在设计的时候肯定都是闭环应用的多,但是什么时候没必要闭环应用?光验证ac和stb仿真是否一样的话有必要有回路吗?

weixin_44951108的博客 5万+

Python教程学习简记8--Python 高阶函数 map/reduce filter sorted

函数式编程函数是Python内建支持的一种封装,我们通过把大段代码拆成函数,通过一层一层的函数调用,就可以把复杂任务分解成简单的任务,这种分解可以称之为面向过程的程序设计。函数就是面向过程的程序设计的基本单元。而函数式编程–Functional Programming,虽然也可以归结到面向过程的程序设计,但是其思想更接近数学计算。我们首先要搞明白计算机(Computer)和计算(Compute)的概

易者悠也 1639

C语言从句柄到对象 (一) —— 全局变量的噩梦与“多实例”的救赎

本文探讨了嵌入式开发中句柄(Handle)的概念与应用。通过电机控制案例,分析了传统单例模式在扩展性上的局限,并展示了如何通过句柄实现代码复用:将电机状态封装为结构体,通过指针(句柄)传递实例数据,使同一套逻辑可操作多个实例。文章比较了单例模式与句柄模式的适用场景,建议底层驱动库默认采用句柄模式以提高扩展性。最后指出当前实现仍存在数据暴露风险,预告下期将介绍不透明指针技术实现更安全的封装。全文揭示了句柄作为C语言实现模块化和面向对象设计的关键作用。

一路往蓝-Anbo 的博客 1340

用map函数让你的python起飞

我们可以使用Python的 map()对可迭代对象执行映射操作。映射操作包括对可迭代对象中的元素应用转换函数来生成转换后的可迭代对象。通常,map()可以处理和转换可迭代对象,而无需使用显式循环。在本文中,我们已经学习了map()如何工作以及如何使用它来处理可迭代对象。还了解了一些可以在代码中替换map()的python工具。至此我们现在知道如何:使用Python的map()使用map()来处理和转换可迭代对象,而不使用显式循环将 map()与 filter()和reduce()

Python数据挖掘 3049

基于 Qt C++ 开发一套西门子量子测量系统的控制与数据采集平台

sensorIdCombo->addItems({"QTS-100-001 (温度)", "QPG-200-001 (压力)", "QDS-300-001 (位移)"});precisionTable->setHorizontalHeaderLabels({"传感器ID", "类型", "标称精度", "实际精度", "校准状态"});QWidget *dispWidget = createSensorWidget("量子位移", "mm (±1μm)", 50.0, 0.001);// 传感器状态更新。

寒寒豆豆软件公司的博客 253

Python入门之高阶函数map/reduce

1.map()函数函数接收两个参数,一个是函数,一个是Iterable,map将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator返回。eg1:一个函数f(x)=x2,要把这个函数作用在一个list [1, 2, 3, 4, 5, 6, 7, 8, 9]上,就可以用map()实现如下:&gt;&gt;&gt; def f(x): ... return x * x ... ...

WAF 457

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain&#39;s apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath(&#39;DeepLearnToolbox&#39;));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand(&#39;state&#39;,0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W&#39;); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand(&#39;state&#39;,0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = &#39;sigm&#39;;%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, &#39;Too big error&#39;);```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand(&#39;state&#39;,0)sae = saesetup([784 100]);sae.ae{1}.activation_function = &#39;sigm&#39;;sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)&#39;)% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = &#39;sigm&#39;;nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, &#39;Too big error&#39;);```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x&#39;,28,28,60000))/255;test_x = double(reshape(test_x&#39;,28,28,10000))/255;train_y = double(train_y&#39;);test_y = double(test_y&#39;);%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you&#39;ll get around 1.2% errorrand(&#39;state&#39;,0)cnn.layers = { struct(&#39;type&#39;, &#39;i&#39;) %input layer struct(&#39;type&#39;, &#39;c&#39;, &#39;outputmaps&#39;, 6, &#39;kernelsize&#39;, 5) %convolution layer struct(&#39;type&#39;, &#39;s&#39;, &#39;scale&#39;, 2) %sub sampling layer struct(&#39;type&#39;, &#39;c&#39;, &#39;outputmaps&#39;, 12, &#39;kernelsize&#39;, 5) %convolution layer struct(&#39;type&#39;, &#39;s&#39;, &#39;scale&#39;, 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, &#39;Too big error&#39;);```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, &#39;Too big error&#39;);%% ex2 neural net with L2 weight decayrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex3 neural net with dropoutrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex4 neural net with sigmoid activation functionrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.activation_function = &#39;sigm&#39;; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex5 plotting functionalityrand(&#39;state&#39;,0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = &#39;softmax&#39;; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand(&#39;state&#39;,0)nn = nnsetup([784 20 10]); nn.output = &#39;softmax&#39;; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

Python map函数(类)用法

Python 内置map函数食用指南

qq_45957458的博客 5182

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

python高阶函数、map reduce 自己如何去定义_Python之高阶函数map/reduce

Python内建map()和reduce()函数map()函数接收两个参数一个是函数一个是一个Iterable(迭代器),并把结果作为新的Iterator(生成器)返回有一个函数f(x)=x*x作用于序列list[1,2,3,4,5,6,7,8,9]使用python函数实现>>> r=map(f,range(1,4))>>> r>>> list...

weixin_42517569的博客 200

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

map和reduce的练习——Python学习笔记

1. 利用map()函数,把用户输入的不规范的英文名字,变为首字母大写,其他小写的规范名字。 # -*- coding: utf-8 -*- def normalize(name): return name[:1].upper() + name[1:] # 测试: L1 = ['adam', 'LISA', 'barT'] L2 = list(map(normalize, L1)) pri...

我是张跑跑 906

python高阶函数map_Python之高阶函数map/reduce

Python内建map()和reduce()函数map()函数接收两个参数一个是函数一个是一个Iterable(迭代器),并把结果作为新的Iterator(生成器)返回有一个函数f(x)=x*x作用于序列list[1,2,3,4,5,6,7,8,9]使用python函数实现>>> r=map(f,range(1,4))>>> r>>> list(r)[1, 4, 9]>>> def f(x):.....

weixin_39856607的博客 210

深度学习面试的一些知识

https://www.nowcoder.com/discuss/205843?type=2 1.IOU计算 求出左上角的最大值,右下角的最小值。 IOU代码和NMS代码 # -*- coding: utf-8 -*- # # This is the python code for calculating bbox IoU, # By running the script, w...

pursuit_zhangyu的博客 2167

Python编程基础:理解和使用map()函数

函数会返回一个迭代器,其中包含应用函数后的结果。是一个内置函数,用于将一个函数应用于一个或多个可迭代对象的所有元素。,用于计算一个数字的平方。然后,我们创建了一个数字列表,然后使用。,用于计算两个数字的和。然后,我们创建了两个数字列表,然后使用。函数可以接受任意数量的可迭代对象,但是传递给。是一个函数,它接收一个参数并返回一个值。函数应用于列表中的所有元素。函数应用于列表中的所有元素。函数接受两个参数,所以我们传递了两个列表。在这个例子中,我们定义了一个函数。在这个例子中,我们定义了一个函数。

AI悦创·编程私教1v1 671

内置函数sorted, map(Python)

def sort(iterable,*, key=None, reverse=False): lis = [] for i in iterable: ci = key(i) if key else i for x, j in enumerate(lis): cj = key(j) if key else j way = ci > cj if reverse else ci < cj

qq_49644209的博客 2474

Python map()函数的用法

Python函数式编程之map()Python中map()、filter()、reduce()这三个都是应用于序列的内置函数。 格式: map(func, seq1[, seq2,…]) 第一个参数接受一个函数名,后面的参数接受一个或多个可迭代的序列,返回的是一个集合。 Python函数编程中的map()函数是将func作用于seq中的每一个元素,并将所有的调用的结果作为一个list返回。如

另一个自己 10万+

python 中 map 函数生成的迭代器对象的坑(适用于全部迭代器)

记录了由于 python 迭代器导致的遍历问题

qq_45638941的博客 377

C++|函数幼儿园级基础知识

1 概述 作用:将一段代码封装起来 把一个较大的程序,分为几个特定的模块 2 函数的定义 语法: 返回值类型 函数名(参数列表) { 函数体语句 return 表达式 } 3 函数的调用 语法:函数名(参数) 4 值传递 注意1:如果函数不需要返回值,声明可以写void。 注意2:做值传递时,形参发生变化并不会影响到实参。 5 函数的常见样式 1、无参无返 2、有参无返 3、无参有返 4、有参有返 6 函数的声明 作用:告诉编译器如何调用函数以及如何调用函数。函数的实际主体可以单独定义。 注意

Sfiaflys的博客 629

python生成器杨辉三角_Python(四)生成器 和 杨辉三角

# -*- coding: utf-8 -*-def triangles():# 期待输出:# [1]# [1, 1]# [1, 2, 1]# [1, 3, 3, 1]# [1, 4, 6, 4, 1]# [1, 5, 10, 10, 5, 1]# [1, 6, 15, 20, 15, 6, 1]# [1, 7, 21, 35, 35, 21, 7, 1]# [1, 8, 28, 56, 70, ...

weixin_39612733的博客 139

python之高阶函数--map()和reduce()

以下为学习笔记:来自廖雪峰的官方网站 1.高阶函数:简单来说是一个函数里面嵌入另一个函数 2.python内建的了map()和reduce()函数 map()函数接收两参数,一个是函数,一个是Iterable. map将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterable返回 例子: #map函数def f(x): return x * xr = map(f,...

weixin_30933531的博客 148
上一篇: Python高级特性(切片 迭代 列表生成式 生成器 迭代器)学习笔记
下一篇: Pyhton 注释(单行、多行注释符号使用方法及规范)
_best
博客等级 码龄9年 15粉丝 32原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值