本文已参与「新人创作礼」活动,一起开启掘金创作之路
Applications of Deep Neural Networks with Keras
基于Keras的深度神经网络应用
著:Jeff Heaton 译:人工智能学术前沿
目录
1.Python基础
2.机器学习Python
3.TensorFlow简介
4.表格类数据的训练
5.正则化和Dropout
6.用于计算机视觉的卷积神经网络
7.生成对抗网络
8.Kaggle数据集
9.迁移学习
10.Keras的时间序列
11.自然语言处理与语音识别
12.强化学习
13.Advanced/Other Topics
14.其他神经网络技术
1.5:函数、lambda和Map/Reduce
Part 1.5: Functions, Lambdas, and Map/Reduce
函数、lambda和map/reduce可以让您以高级的方式处理数据。我们将在这里介绍这些技术,并在下一个模块中展开,该模块将讨论Pandas。
函数的使用
functions
在Python中,函数形参可以被指定的或不指定的。也可以使用默认值。考虑下面的函数。
def say_hello(speaker, person_to_greet, greeting = "Hello"):
print(f'{greeting} {person_to_greet}, this is {speaker}.')
say_hello('Jeff', "John")
say_hello('Jeff', "John", "Goodbye")
say_hello(speaker='Jeff', person_to_greet="John", greeting = "Goodbye")
输出
Hello John, this is Jeff.
Goodbye John, this is Jeff.
Goodbye John, this is Jeff.
函数是捕获通常执行的代码的一种方法。考虑以下函数,该函数可用于从首字母大写的字符串中裁剪空白内容。
def process_string(str):
t = str.strip()
return t[0].upper()+t[1:]
str = process_string(" hello ")
print(f'"{str}"')
输出
"Hello"
Map函数
Map
python的map是一个非常有用的函数,许多不同的编程语言都提供了它。map函数接受一个列表,并将一个函数应用于该列表的每个成员,并返回与第一个列表大小相同的第二个列表。
l = [' apple ', 'pear ', 'orange', 'pine apple ']
list(map(process_string, l))
输出
['Apple', 'Pear', 'Orange', 'Pine apple']
map函数与我们前面讨论的Python生成式非常相似。下面的生成式完成了与前面调用map相同的任务。
l = [' apple ', 'pear ', 'orange', 'pine apple ']
l2 = [process_string(x) for x in l]
print(l2)
输出
['Apple', 'Pear', 'Orange', 'Pine apple']
使用映射函数还是生成式函数的选择取决于程序员。我倾向于使用map,因为它在其他编程语言中很常见。
Filter函数
Filter
map函数总是创建与原始列表大小相同的新列表,而filter函数创建的列表可能更小。
def greater_than_five(x):
return x>5
l = [ 1, 10, 20, 3, -2, 0]
l2 = list(filter(greater_than_five, l))
print(l2)
输出
[10, 20]
Lambda函数
Lambda
创建一个完整的函数来检查一个值是否大于5,这似乎有些乏味。lambda为您节省了这一努力。lambda本质上是一个未命名的函数。
l = [ 1, 10, 20, 3, -2, 0]
l2 = list(filter(lambda x: x>5, l))
print(l2)
输出
[10, 20]
Reduce函数
Reduce
最后,我们将利用减少。与filter和map一样,reduce函数也适用于列表。但是,reduce的结果是一个单独的值。考虑是否要对列表的值求和。求和是由lambda实现的。
from functools import reduce
l = [ 1, 10, 20, 3, -2, 0]
result = reduce(lambda x,y: x+y,l)
print(result)
输出
32