扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
举例2:
创新互联主要从事成都做网站、成都网站设计、成都外贸网站建设、网页设计、企业做网站、公司建网站等业务。立足成都服务黄冈,十年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:028-86922220
运行结果:
运行结果:
定义:
调用:
我们经常在看别人的代码中,经常出现def(*args, **kwargs)这样的表现形式:
外部变量被改(x由100改为101):
内部变量外部也可用:
统计程序中的变量,返回的是个字典
结果:
lambda版本写法:
结果:
举例:
通过关键字def来创建函数,def的作用是实现python中函数的创建
函数定义过程:
函数名+()小括号执行函数
函数体内对全局变量只能读取,不能修改
局部变量,无法在函数体外使用
python 使用 lambda 来创建匿名函数。
所谓匿名,意即不再使用 def 语句这样标准的形式定义一个函数。
作者:迈克尔·贝耶勒(Michael Beyeler)
如需转载请联系华章 科技
如果已安装Anaconda Python版本,就已经安装好了可以使用的 Matplotlib。否则,可能要访问官网并从中获取安装说明:
正如使用np作为 NumPy 的缩写,我们将使用一些标准的缩写来表示 Matplotlib 的引入:
在本书中,plt接口会被频繁使用。
让我们创建第一个绘图。
假设想要画出正弦函数sin(x)的线性图。得到函数在x坐标轴上0≤x<10内所有点的值。我们将使用 NumPy 中的 linspace 函数来在x坐标轴上创建一个从0到10的线性空间,以及100个采样点:
可以使用 NumPy 中的sin函数得到所有x点的值,并通过调用plt中的plot函数把结果画出来:
你亲自尝试了吗?发生了什么吗?有没有什么东西出现?
实际情况是,取决于你在哪里运行脚本,可能无法看到任何东西。有下面几种可能性:
1. 从.py脚本中绘图
如果从一个脚本中运行 Matplotlib,需要加上下面的这行调用:
在脚本末尾调用这个函数,你的绘图就会出现!
2. 从 IPython shell 中绘图
这实际上是交互式地执行Matplotlib最方便的方式。为了让绘图出现,需要在启动 IPython 后使用所谓的%matplotlib魔法命令。
接下来,无须每次调用plt.show()函数,所有的绘图将会自动出现。
3. 从 Jupyter Notebook 中绘图
如果你是从基于浏览器的 Jupyter Notebook 中看这段代码,需要使用同样的%matplotlib魔法命令。然而,也可以直接在notebook中嵌入图形,这会有两种输出选项:
在本书中,将会使用inline选项:
现在再次尝试一下:
上面的命令会得到下面的绘图输出结果:
如果想要把绘图保存下来留作以后使用,可以直接在 IPython 或者 Jupyter Notebook 使用下面的命令保存:
仅需要确保你使用了支持的文件后缀,比如.jpg、.png、.tif、.svg、.eps或者.pdf。
作为本章最后一个测试,让我们对外部数据集进行可视化,比如scikit-learn中的数字数据集。
为此,需要三个可视化工具:
那么开始引入这些包吧:
第一步是载入实际数据:
如果没记错的话,digits应该有两个不同的数据域:data域包含了真正的图像数据,target域包含了图像的标签。相对于相信我们的记忆,我们还是应该对digits稍加 探索 。输入它的名字,添加一个点号,然后按Tab键:digits.TAB,这个操作将向我们展示digits也包含了一些其他的域,比如一个名为images的域。images和data这两个域,似乎简单从形状上就可以区分。
两种情况中,第一维对应的都是数据集中的图像数量。然而,data中所有像素都在一个大的向量中排列,而images保留了各个图像8×8的空间排列。
因此,如果想要绘制出一副单独的图像,使用images将更加合适。首先,使用NumPy的数组切片从数据集中获取一幅图像:
这里是从1797个元素的数组中获取了它的第一行数据,这行数据对应的是8×8=64个像素。下面就可以使用plt中的imshow函数来绘制这幅图像:
上面的命令得到下面的输出:
此外,这里也使用cmap参数指定了一个颜色映射。默认情况下,Matplotlib 使用MATLAB默认的颜色映射jet。然而,在灰度图像的情况下,gray颜色映射更有效。
最后,可以使用plt的subplot函数绘制全部数字的样例。subplot函数与MATLAB中的函数一样,需要指定行数、列数以及当前的子绘图索引(从1开始计算)。我们将使用for 循环在数据集中迭代出前十张图像,每张图像都分配到一个单独的子绘图中。
这会得到下面的输出结果:
关于作者:Michael Beyeler,华盛顿大学神经工程和数据科学专业的博士后,主攻仿生视觉计算模型,用以为盲人植入人工视网膜(仿生眼睛),改善盲人的视觉体验。 他的工作属于神经科学、计算机工程、计算机视觉和机器学习的交叉领域。同时他也是多个开源项目的积极贡献者。
本文摘编自《机器学习:使用OpenCV和Python进行智能图像处理》,经出版方授权发布。
参数可以是任意类型。
比如可以是列表。
-------------------------------
library=['python精通','MySQL','数据分析','人工智能']
#形参
def add_book(bookname):
library.append(bookname)
print('图书添加成功!')
pass
def show_book(books):
for book in books:
print(book)
pass
pass
#调用函数
add_book('新概念英语')
show_book(library)
------------------------------
#输出列表中所有大于50的数
list1=[23,45,77,88,58,10]
def get_list(list_1):
new_list=[ ]
for e in list_1:
if e=50:
new_list.append(e)
pass
pass
print(new_list)
pass
#调用函数
get_list(list1) #[77,88,58]
------------------------------
#删除列表中小于50的数
def remove_from_list(list_1):
n=0
while nlen(list_1): p="" /len(list_1):
if list_1[n]50:
list_1.remove(list_1[n])
pass
else:
n+=1
pass
pass
print(list_1)
pass
#调用函数
remove_from_list(list1) #[77,88,58]
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流