深度学习入门 基于python的理论和实践 第一章

目录

一、Python是什么?

二、Python的安装

2.1 Python版本

2.2 使用的外部库

三、Python的基本语法

3.1 算术运算

3.2 数据类型

3.3 列表

3.4 字典

3.5 bool类型

四、类

五、 Numpy

5.1 导入并且使用Numpy库

5.2 生成Numpy数组

5.3 Numpy的算数运算

5.4 Numpy的N维数组

5.5 广播机制

 5.6 访问元素

六、 Matplotlib

6.1 生成图像

 6.2 显示图像

总结


一、Python是什么?

1.Python是一个简单、易读、易记的编程语言,而且是开源的,对于首次接触编程的人士来说,Python是最合适的语言。

2.Google、Microsoft、Facebook等战斗在IT行业最前沿的企业经常使用Python。

3.在科学领域,特别是在机器学习、数据科学领域,Python被大量使用。Python凭借着NumPy、SciPy等优秀的数值计算、统计分析库,在数据科学领域占有不可动摇的地位。深度学习的框架中也有很多使用Python的场景,比如Caffe、TensorFlow、Chainer、Theano等著名的深度学习框架都提供了Python接口。因此,学习Python对使用深度学习框架大有益处。
 

二、Python的安装

2.1 Python版本

        本书使用Python3.x版本,Anaconda安装3.x版本。

2.2 使用的外部库

NumpyMatpoltlib

  • NumPy是用于数值计算的库,提供了很多高级的数学算法和便利的矩阵操作方法。本书将使用这些便利的方法来有效地促进深度学习的实现。
  • Matplotlib是用来画图的库。使用Matplotlib能将实验结果可视化,并在视觉上确认深度学习运行期间的数据。

三、Python的基本语法

3.1 算术运算

* 乘法,/表示出发,**表示乘方

注:python3.x中整数除以整数是小数浮点数

3.2 数据类型

>>>type(10)

解释为10是int类型。

3.3 列表

>>> a = [1,2,3,4,5]  #生成列表
>>> print(a)         #输出列表
[1, 2, 3, 4, 5]
>>> len(a)           #输出列表长度
5
>>> a[0]            #访问第一个元素
1

>>> a[0:2]          #切片,获取索引0到1的元素,不包括2
[1, 2]
>>> a[1:]          #获取从第1到最后的元素
[2, 3, 4, 5]
>>> a[:-1]          #获取除最后一个,其他元素
[1, 2, 3, 4]

3.4 字典

>>> b = {'height':180}  #生成字典
>>> b['height']             #访问元素
180
>>> b['weight'] = 70  #增添新元素
>>> print(b)
{'height': 180, 'weight': 70}

3.5 bool类型

        bool型取ture或者false的一个值。布尔运算包括and,or, not

四、类

        用户自己定义类,就可以自己创建数据类型。可以定义原创方法和属性。

例:

class Man:
    def __init__(self,name):
        delf.name = name
    
    def hello(self):
        print("Hello" + self.name + "1")

m = Man('Eli')
m.hello()

        其中,名为__init__的方法,是进行初始化的方法,也称为构造函数,只在生成类的实例对象)时被调用一次。此外,在方法的第一个参数中明确地写入表示自身(自身的实例)的self是Python的一个特点。

        定义了一个类Man,然后使用类Man生成了实例(对象)m。类man的构造函数会接收参数name,然后用这个参数初始化实例变量self.name(实例变量的名字也可以写为self.n等,这样写的话,后面给实例变量赋值时也要写为self.n)。实例变量是存储在各个实例中的变量。Python中可以像self.name这样,通过在self后面添加属性名来生成或访问实例变量。

五、 Numpy

深度学习中经常出现数组和矩阵的运算,则利用numpy.array中的方法进行运算。

5.1 导入并且使用Numpy库

        Numpy为外部库,需要引入。 导入语句为import numpy,为了在代码中更方便的引用其方法,可以将其名字进行缩写,语句为 import numpy as np

5.2 生成Numpy数组

        使用np.array()方法可以生成Numpy数组。ap.array()接收python列表作为参数,生成Numpy数组(numpy.ndarray)。

深度学习入门 基于python的理论和实践 第一章_第1张图片

5.3 Numpy的算数运算

                NumPy数组可进行对应元素(element-wise)的运算,需要注意的是,进行对应元素运算的两个数组的元素个数要求相同,可以对数组的各个元素进行算术运算。如果元素个数不同,程序将会报错。

 

 深度学习入门 基于python的理论和实践 第一章_第2张图片

         NumPy数组还可以和单一的数值(标量)组合起来进行运算。此时的运算是NumPy数组的各个元素和标量之间进行运算。此功能也被称为广播。将在下一节进行介绍。

5.4 Numpy的N维数组

        Numpy还可以生成多维数组(矩阵)

        NumPy生成的矩阵还可以在相同形状的矩阵间进行对应元素的算术运算。并且,也可以通过标量(单一数值)对矩阵进行算术运算,这也是基于广播的功能。

深度学习入门 基于python的理论和实践 第一章_第3张图片

         使用shape方法查看了矩阵A的形状,通过dtype方法查看了矩阵元素的数据类型。

5.5 广播机制

numpy形状不同的数组之间也可以进行计算,这一切都源于其广播机制。

如 5.4 中矩阵a进行*10的运算,就是把标量10扩展成2*2的形状,再与a进行运算。即为广播

 不同形状的数组间也能进行计算。

深度学习入门 基于python的理论和实践 第一章_第4张图片

 5.6 访问元素

        元素索引也是从0开始的。

深度学习入门 基于python的理论和实践 第一章_第5张图片

        用for循环访问数组。

 深度学习入门 基于python的理论和实践 第一章_第6张图片

        使用flatten()将数组转化成一维数组,并访问。

深度学习入门 基于python的理论和实践 第一章_第7张图片

         列表类型的数组也是可以用来访问元素的。增加一定的条件,也可以访问元素。

深度学习入门 基于python的理论和实践 第一章_第8张图片

        列表类型的布尔型数组也可用来访问元素。

 

六、 Matplotlib

深度学习的实验中,图形绘制数据可视化非常重要。Matplotlib是用于绘制图形的库,使用Matplotlib可以实现图形的绘制数据的可视化

6.1 生成图像

import matplotlib.pyplot as plt
import numpy as np

x = np.arange(0,6,0.1)    #生成间距0.1,0-6的图像
y1 = np.sin(x)            #第一条线
y2 = np.cos(x)            #第二条线

#label 对生成的线进行标注
plt.plot(x,y1,label = "sin")
#linesty,设置生成的线条
plt.plot(x,y2,linestyle ="--",label = "cos")
plt.xlabel("x")
plt.ylabel("y")
plt.title("sin&cos")

plt.legend()
plt.show()

深度学习入门 基于python的理论和实践 第一章_第9张图片

 6.2 显示图像

  • pyplot模块还可以实现读取图像与显示图像的功能。
    使用matplotlib.image模块的imread()方法读取图像,使用matplotlib.pyplot模块的imshow()方法显示图像。
  • 深度学习入门 基于python的理论和实践 第一章_第10张图片


总结

该文章是此书的第一篇,介绍了python的基本语法以及常用的numpy,矩阵运算。和matplotlib库,进行可视化。为以后学习提供基础。

你可能感兴趣的:(深度学习入门,python,深度学习,开发语言)