《深度学习入门:基于Python的理论与实现》——第一章Python入门

深度学习如今已经深入我们生活的方方面面——自动驾驶、图像识别、AI翻译……但想真正学会它,我们首先需要掌握一门工具:Python。

在这一章里,我们将通过最简单的方式,带你一步步走进Python的世界,为之后实现深度学习系统打好基础。

如果你已经熟悉Python、NumPy和Matplotlib等工具,可以跳过本章,直接进入后面内容。但如果你是初学者,接下来我们一起从零开始。


1.1 什么是Python?

Python 是一种简单、易读、易记的编程语言。它是开源的,可以自由使用。

Python 的语法像英语一样自然,用起来轻松容易,尤其适合初学者。很多大学甚至将其作为第一门编程语言。

不仅如此,Python 的代码可读性高,执行效率也不差。无论是编写快速响应的程序,还是处理大规模数据,Python 都表现优秀。因此,不论你是初学者还是专业程序员,Python 都是值得掌握的语言。

如今,Google、Microsoft、Facebook 等顶尖公司都大量使用 Python。特别是在人工智能和数据分析领域,Python 已成为事实上的“标准语言”。

深度学习框架如 TensorFlow、PyTorch、Chainer 等,都提供了Python接口。所以,学习Python,对你学习深度学习大有帮助。


1.2 Python的安装

1.2.1 Python版本选择

Python 目前有两个主要版本:2.x 和 3.x。虽然 2.x 仍在被部分使用,但本书以 Python 3.x 为标准。

需要注意的是,2.x 和 3.x 不兼容,用 3.x 写的代码不能直接在 2.x 中运行。因此,请安装 Python 3.x。

1.2.2 使用的外部库

本书目标是“从零开始实现深度学习”,我们尽量避免依赖外部库。

但有两个例外:

  • NumPy:用于数值计算,提供矩阵、数组等结构。

  • Matplotlib:用于绘图,能将实验结果可视化。

这两个库是深度学习实现的重要工具。

1.2.3 推荐使用Anaconda

我们推荐使用 Anaconda,这是一个包含Python及各种数据分析库的“集成版”发行包。安装Anaconda后,你就拥有了Python、NumPy、Matplotlib等常用工具,省去了单独配置环境的烦恼。

下载安装地址:Anaconda | Built to Advance Open Source AI

请务必选择 Python 3.x 版本的 Anaconda。


1.3 Python解释器

安装完成后,在终端输入以下命令,确认是否成功安装:

python --version

如果显示 Python 3.x.x,说明安装成功。

输入 python 可以进入 Python 解释器:

$ python >>>

解释器模式也叫“对话模式”,可以直接输入命令,让Python给你“答复”。

python
>>> 1 + 2
3

1.3.1 算术计算

Python 可以进行加减乘除、乘方等操作:

# 减法运算
result1 = 1 - 2
print(result1)

# 乘法运算
result2 = 4 * 5
print(result2)

# 除法运算
result3 = 7 / 5
print(result3)

# 幂运算
result4 = 3 ** 2
print(result4)

注意:** 表示“乘方”。


1.3.2 数据类型

Python有多种数据类型,可使用 type() 查看类型:

# 检查整数的类型
print(type(10))

# 检查浮点数的类型
print(type(2.718))

# 检查字符串的类型
print(type("hello"))
    

1.3.3 变量

你可以用 = 给变量赋值:

# 给变量 x 赋值为 10 并打印
x = 10
print(x)

# 重新给变量 x 赋值为 100 并打印
x = 100
print(x)

# 给变量 y 赋值为 3.14
y = 3.14

# 计算 x 和 y 的乘积并打印
result = x * y
print(result)

# 检查 x * y 结果的类型并打印
print(type(result))

Python 是动态类型语言,变量类型会自动根据赋值变化。


1.3.4 列表(数组)

[] 可以创建列表:

# 创建一个列表并赋值给变量 a
a = [1, 2, 3, 4, 5]

# 打印列表 a
print(a)

# 访问列表 a 的第一个元素
print(a[0])

# 修改列表 a 的第五个元素
a[4] = 99

# 打印修改后的列表 a
print(a)
    

可以使用“切片”获取子列表:

# 定义列表
a = [1, 2, 3, 4, 5]

# 切片操作:获取索引 1 到索引 3(不包含 3)的元素
slice_1 = a[1:3]
print(slice_1)

# 切片操作:获取从开头到索引 3(不包含 3)的元素
slice_2 = a[:3]
print(slice_2)

# 切片操作:获取从开头到倒数第一个元素(不包含倒数第一个元素)的元素
slice_3 = a[:-1]
print(slice_3)

1.3.5 字典

字典用 {} 创建,存储“键-值”对:

# 创建一个字典并赋值给变量 me
me = {'height': 180}

# 访问字典 me 中键 'height' 对应的值
print(me['height'])

# 向字典 me 中添加键 'weight' 并赋值为 70
me['weight'] = 70

# 打印修改后的字典 me
print(me)

1.3.6 布尔型

Python中的 bool 只取 TrueFalse

>>> hungry = True

>>> sleepy = False

>>> type(hungry)

>>> not hungry

False

>>> hungry and sleepy

False

>>> hungry or sleepy

True

1.3.7 条件语句(if)

hungry = False
if hungry:
    print("I'm hungry")
else:
    print("I'm not hungry")
print("I'm sleepy")
    

注意:Python 使用 缩进 来表示代码层级,通常为4个空格。


1.3.8 循环语句(for)

for i in [1, 2, 3]:
    print(i)

1.3.9 函数

函数定义方式如下:

def hello(name):
    print("Hello " + name + "!")

hello("cat")

1.4 Python脚本文件

1.4.1 保存为文件

将代码保存为 hungry.py

print("I'm hungry!")

在终端运行:

$ python hungry.py

I'm hungry!

1.4.2 类的使用

这里有一个特殊的 __init__ 方法,这是进行初始化的方法,也称为 构造函数( constructor , 只在生成类的实例时被调用一次。此外,在方法的第一个参数中明确地写入表示自身(自身的实例)的self Python 的一个特点(学过其他编程语言的人可能会觉得这种写self 的方式有一点奇怪)。

自定义类示例(保存为 man.py):

class Man:
    def __init__(self, name):
        self.name = name
        print("Initialized!")

    def hello(self):
        print("Hello " + self.name + "!")

    def goodbye(self):
        print("Good-bye " + self.name + "!")

m = Man("David")
m.hello()
m.goodbye()

 Initialized!

Hello David!

Good-bye David!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值