深度学习-基于Python:第1 章 Python 入门
Python入门
Python这一编程语言已经问世20多年了,在这期间,Python不仅完成了自身的进化,还获得了大量的用户。现在,Python作为最具人气的编程语言,受到了许多人的喜爱。
接下来我们将使用Python实现深度学习系统。不过在这之前,本章将简单地介绍一下Python,看一下它的使用方法。已经掌握了Python、NumPy、Matplotlib等知识的读者,可以跳过本章,直接阅读后面的章节。
1.1Python是什么
Python是一个简单、易读、易记的编程语言,而且是开源的,可以免费地自由使用。Python可以用类似英语的语法编写程序,编译起来也不费力,因此我们可以很轻松地使用Python。特别是对首次接触编程的人士来说,
Python是最合适不过的语言。事实上,很多高校和大专院校的计算机课程均采用Python作为入门语言。
此外,使用Python不仅可以写出可读性高的代码,还可以写出性能高(处理速度快)的代码。在需要处理大规模数据或者要求快速响应的情况下,使用Python可以稳妥地完成。因此,Python不仅受到初学者的喜爱,同时也受到专业人士的喜爱。实际上,Google、Microsoft、Facebook等战斗在IT行业最前沿的企业也经常使用Python。
再者,在科学领域,特别是在机器学习、数据科学领域,Python也被大量使用。Python除了高性能之外,凭借着NumPy、SciPy等优秀的数值计算、统计分析库,在数据科学领域占有不可动摇的地位。深度学习的框架中也有很多使用Python的场景,比如Caffe、TensorFlow、Chainer、
Theano等著名的深度学习框架都提供了Python接口。因此,学习Python对使用深度学习框架大有益处。
综上,Python是最适合数据科学领域的编程语言。而且,Python具有受众广的优秀品质,从初学者到专业人士都在使用。因此,为了完成本专栏的从零开始实现深度学习的目标,Python可以说是最合适的工具。
1.2Python的安装
下面,我们首先将Python安装到当前环境(电脑)上。这里说明一下安装时需要注意的一些地方。
1.2.1 Python版本
Python有Python2.x和Python3.x两个版本。如果我们调查一下目前Python的使用情况,会发现除了最新的版本3.x以外,旧的版本2.x仍在被大量使用。因此,在安装Python时,需要慎重选择安装Python的哪个版本。这是因为两个版本之间没有兼容性(严格地讲,是没有“向后兼容性”),也就是说,会发生用Python3.x写的代码不能被Python2.x执行的情况。
本专栏中使用Python3.x,只安装了Python2.x的读者建议另外安装一下Python3.x。
1.2.2 使用的外部库
本专栏的目标是从零开始实现深度学习。因此,除了NumPy库和Matplotlib库之外,我们极力避免使用外部库。之所以使用这两个库,是因为它们可以有效地促进深度学习的实现。
NumPy是用于数值计算的库,提供了很多高级的数学算法和便利的数组(矩阵)操作方法。本专栏中将使用这些便利的方法来有效地促进深度学习的实现。
Matplotlib是用来画图的库。使用Matplotlib能将实验结果可视化,并在视觉上确认深度学习运行期间的数据。
本专栏将使用下列编程语言和库。
•Python3.x
•NumPy
•Matplotlib
下面将为需要安装Python的读者介绍一下Python的安装方法。已经安装了Python的读者,请跳过这一部分内容。
1.2.3 Anaconda发行版
Python的安装方法有很多种,本专栏推荐使用Anaconda这个发行版。发行版集成了必要的库,使用户可以一次性完成安装。Anaconda是一个侧重于数据分析的发行版,前面说的NumPy、Matplotlib等有助于数据分析的库都包含在其中A。
如前所述,本专栏将使用Python3.x版本,因此Anaconda发行版也要安装3.x的版本。请读者从官方网站下载与自己的操作系统相应的发行版,然后安装。
1.3Python解释器
完成Python的安装后,要先确认一下Python的版本。打开终端(Windows中的命令行窗口),输入python–version命令,该命令会输出已经安装的Python的版本信息。
$python–version
Python3.4.1::Anaconda2.1.0(x86_64)
如上所示,显示了Python3.4.1(根据实际安装的版本,版本号可能不同),说明已正确安装了Python3.x。接着输入python,启动Python解释器。
$python
Python3.4.1|Anaconda2.1.0(x86_64)|(default,Sep102014,17:24:09)
[GCC4.2.1(AppleInc.build5577)]ondarwin
Type"help","copyright","credits"or"license"formoreinformation.
>>>
Python解释器也被称为“对话模式”,用户能够以和Python对话的方式进行编程。比如,当用户询问“1+2等于几?”的时候,Python解释器会回答“3”,所谓对话模式,就是指这样的交互。现在,我们实际输入一下看看。
>>>1+2
3
Python解释器可以像这样进行对话式(交互式)的编程。下面,我们使用这个对话模式,来看几个简单的Python编程的例子。
1.3.1 算术计算
加法或乘法等算术计算,可按如下方式进行。
>>>1-2
-1
>>>4*5
20
>>>7/5
1.4
>>>3**2
9
*表示乘法,/表示除法,表示乘方(32是3的2次方)。另外,在Python2.x中,整数除以整数的结果是整数,比如,7÷5的结果是1。但在Python3.x中,整数除以整数的结果是小数(浮点数)。
1.3.2 数据类型
编程中有数据类型(datatype)这一概念。数据类型表示数据的性质,有整数、小数、字符串等类型。Python中的type()函数可以用来查看数据类型。
>>>type(10)
<class'int'>
>>>type(2.718)
<class'float'>
>>>type("hello")
<class'str'>
根据上面的结果可知,10是int类型(整型),2.718是float类型(浮点型),"hello"是str(字符串)类型。另外,“类型”和“类”这两个词有时用作相同的意思。这里,对于输出结果<class’int’>,可以将其解释成“10是int类(类型)”。
1.3.3 变量
可以使用x或y等字母定义变量(variable)。此外,可以使用变量进行计算,也可以对变量赋值。
>>>x=10#初始化
>>>print(x)#输出x
10
>>>x=100#赋值
>>>print(x)
100
>>>y=3.14
>>>x*y
314.0
>>>type(x*y)
<class'float'>
Python是属于“动态类型语言”的编程语言,所谓动态,是指变量的类型是根据情况自动决定的。在上面的例子中,用户并没有明确指出“x的类型是int(整型)”,是Python根据x被初始化为10,从而判断出x的类型为int的。此外,我们也可以看到,整数和小数相乘的结果是小数(数据类型的自动转换)。另外,“#”是注释的意思,它后面的文字会被Python忽略。
1.3.4 列表
除了单一的数值,还可以用列表(数组)汇总数据。
>>>a=[1,2,3,4,5]#生成列表
>>>print(a)#输出列表的内容
[1,2,3,4,5]
>>>len(a)#获取列表的长度
5
>>>a[0]#访问第一个元素的值
1
>>>a[4