当前位置:   article > 正文

深度学习入门-第1章-Python入门_深度学习入门图灵pdf

深度学习入门图灵pdf

春节想学习一些人工智能方面的知识,跟上时代,云风去年推荐了入门的鱼书:深度学习入门:基于Python的理论与实现 

图灵社区图灵社区成立于2005年6月,以策划出版高质量的科技书籍为核心业务,主要出版领域包括计算机、电子电气、数学统计、科普等,通过引进国际高水平的教材、专著,以及发掘国内优秀原创作品等途径,为目标读者提供一流的内容。icon-default.png?t=N7T8https://www.ituring.com.cn/book/1921这本书读起来没有门槛,初五不串门,在家安心读了第一章:Python入门,记录如下

安装python:

第一章 python入门
https://www.7-zip.org/download.html
https://www.ituring.com.cn/book/1921

install python3:Anaconda发行版
https://www.anaconda.com/download
powershell
Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))


C:\python\ml> python --version
Python 3.11.5
(base) PS C:\python\ml> python
Python 3.11.5 | packaged by Anaconda, Inc. | (main, Sep 11 2023, 13:26:23) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>

2024.04.28 这个anaconda竟然有版权问题,看介绍是免费下载的。所以我把windows的卸载了。

在linux下重新安装了一套,似乎没有说有这类问题:

machinelearning]$ python --version
Python 3.11.5

machinelearning]$ python
Python 3.11.5 (main, Sep 11 2023, 13:54:46) [GCC 11.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> 

并未显示Anaconda信息

确认安装了anaconda版本。下面就开始做书上的实验了

不安装anaconda,也可以直接用python.

win11:microsoft store里面可以直接安装python

ch01> python --version
Python 3.12.4

安装numpy

C:\python> pip install numpy

Successfully installed numpy-1.26.4

python -m pip install -U pip
python -m pip install -U matplotlib

对话模式:

1.3.1 算术运算

  1. (base) [machinelearning]$ python
  2. Python 3.11.5 (main, Sep 11 2023, 13:54:46) [GCC 11.2.0] on linux
  3. Type "help", "copyright", "credits" or "license" for more information.
  4. >>> 1+2
  5. 3
  6. >>> 1-2
  7. -1
  8. >>> 4*5
  9. 20
  10. >>> 7/5
  11. 1.4
  12. >>> 3**2
  13. 9
  14. >>>

** 表示乘方(3**2 是 3 的 2 次方)
在 Python 2.x 中,整数除以整数的结果是整数,比如,7 ÷ 5 的结果是 1。但在 Python 3.x 中,整数除以整数的结果是小数(浮点数)

1.3.2 数据类型

  1. >>> type(10)
  2. <class 'int'>
  3. >>> type(2.716)
  4. <class 'float'>
  5. >>> type("hello")
  6. <class 'str'>
  7. >>>

1.3.3 变量

  1. >>> x=10
  2. >>> print(x)
  3. 10
  4. >>> x=100
  5. >>> print(x)
  6. 100
  7. >>> y=3.14
  8. >>> x*y
  9. 314.0
  10. >>> type(x*y)
  11. <class 'float'>
  12. >>>


Python 是属于“动态类型语言”的编程语言,所谓动态,是指变量的类型是根据情况自动决定的

1.3.4 列表

  1. >>> a=[1,2,3,4,5]
  2. >>> print(a)
  3. [1, 2, 3, 4, 5]
  4. >>> len(a)
  5. 5
  6. >>> a[1]
  7. 2
  8. >>> a[0]
  9. 1
  10. >>> a[4]
  11. 5
  12. >>> a[5]
  13. Traceback (most recent call last):
  14. File "<stdin>", line 1, in <module>
  15. IndexError: list index out of range
  16. >>> a[4]=99
  17. >>> print(a)
  18. [1, 2, 3, 4, 99]

使用切片不仅可以访问某个值,还可以访问列表的子列表
 

  1. >>> print(a)
  2. [1, 2, 3, 4, 99]
  3. >>> a[0:2]
  4. [1, 2]
  5. >>> a[1:]
  6. [2, 3, 4, 99]
  7. >>> a[:3]
  8. [1, 2, 3]
  9. >>> a[:-1]
  10. [1, 2, 3, 4]
  11. >>> a[:-2]
  12. [1, 2, 3]

1.3.5 字典
 

  1. >>> me={'height':180}
  2. >>> me['height']
  3. 180
  4. >>> me['weight']=70
  5. >>> print(me)
  6. {'height': 180, 'weight': 70}

1.3.6 布尔型
 

  1. >>> hungry=True
  2. >>> sleepy=False
  3. >>> type(hungry)
  4. <class 'bool'>
  5. >>> not hungry
  6. False
  7. >>> hungry and sleepy
  8. False
  9. >>> hungry or sleepy
  10. True

1.3.7 if 语句
 

  1. >>> hungry=True
  2. >>> if hungry:
  3. ... print("I'm hungry")
  4. File "<stdin>", line 2
  5. print("I'm hungry")
  6. ^
  7. IndentationError: expected an indented block after 'if' statement on line 1
  8. >>> print("I'm hungry")
  9. File "<stdin>", line 1
  10. print("I'm hungry")
  11. IndentationError: unexpected indent
  12. >>> if hungry:
  13. ... print("i'm hungry")
  14. ...
  15. i'm hungry
  16. >>> hungry=False
  17. >>> if hungry:
  18. ... print("hungry")
  19. ... else:
  20. ... print("im not hungry")
  21. ... print("im sleepy")
  22. ...
  23. im not hungry
  24. im sleepy

上面的 if 语句中,if hungry: 下面的语句开头有 4 个空白字符。它是缩进的意思,表示当前面的条件(if hungry )成立时,此处的代码会被执行。这个缩进也可以用 tab 表示,Python 中推荐使用空白字符。
Python 使用空白字符表示缩进。一般而言,每缩进一次,使用 4 个空白字符。

1.3.8 for 语句
 

  1. >>> for i in [1,2,3]:
  2. ... print(i)
  3. ...
  4. 1
  5. 2
  6. 3

1.3.9 函数

  1. >>> def hello():
  2. ... print("Hello World!")
  3. ...
  4. >>> hello()
  5. Hello World!
  6. >>>
  7. >>>
  8. >>>
  9. >>> def hello(object)
  10. File "<stdin>", line 1
  11. def hello(object)
  12. ^
  13. SyntaxError: expected ':'
  14. >>> def hello(object):
  15. ... print("Hello"+object+"!")
  16. ...
  17. >>> hello("cat")
  18. Hellocat!
  19. >>>
  20. (base) [machinelearning]$

关闭 Python 解释器时,Linux 或 Mac OS X 的情况下输入Ctrl-D(按住 Ctrl,再按 D 键);Windows 的情况下输入Ctrl-Z,然后按 Enter 键。

1.4 Python脚本文件
1.4.1 保存为文件
(base) PS C:\python\ml\ch01> python hungry.py
I'm hungry!

linux环境

  1. (base) [machinelearning]$ pwd
  2. /media/vdc/book/booknotes/machinelearning
  3. (base) [machinelearning]$ ls
  4. (base) [machinelearning]$ mkdir ch01
  5. (base) [machinelearning]$ cd ch01
  6. (base) [ch01]$ touch hungry.py
  7. (base) [ch01]$ vi hungry.py
  8. (base) [ch01]$ python hungry.py
  9. I'm hungry!
  10. (base) [ch01]$


1.4.2 类
(base) PS C:\python\ml\ch01> python man.py
Initialized!
Hello David!
Good-bye David!

python中使用class关键字来定义类,累遵循如下格式:
class 类名:
    def __init__(self,参数):#构造函数
        ...
    def 方法1(self,参数):
        ...
这里有一个特殊的 init 方法,这是进行初始化的方法,也称为构造函数 (constructor)
在方法的第一个参数中明确地写入表示自身(自身的实例)的 self 是 Python 的一个特点
linux下的例子:

 ch01]$ touch man.py
(base)  ch01]$ vi man.py
(base) ch01]$ python man.py
Traceback (most recent call last):
  File "/media/vdc/book/booknotes/machinelearning/ch01/man.py", line 1, in <module>
    class Man:
  File "/media/vdc/book/booknotes/machinelearning/ch01/man.py", line 9, in Man
    m = Man("David")
        ^^^
NameError: name 'Man' is not defined. Did you mean: 'max'?
(base) [ch01]$ cat man.py
 

  1. class Man:
  2.     def __init__(self, name):
  3.         self.name=name
  4.         print("Initialized!")
  5.     def hello(self):
  6.         print("Hello "+self.name+"!")
  7.     def goodbye(self):
  8.         print("Good-bye "+self.name+"!")
  9. m = Man("David")
  10. m.hello()
  11. m.goodbye()

从程序看,是调用Man不需要空格,否则就是在class Man定义中了,所以找不到Man,去掉空格:
(base) [ch01]$ vi man.py
(base) [ch01]$ python man.py
Initialized!
Hello David!
Good-bye David!
 

1.5 NumPy
1.5.1 导入 NumPy
1.5.2 生成 NumPy 数组

  1. >>> import numpy as np
  2. >>> x=np.array([1.0,2.0,3.0])
  3. >>> print(x)
  4. [1. 2. 3.]
  5. >>> type(x)
  6. <class 'numpy.ndarray'>


1.5.3 NumPy 的算术运算

  1. >>> x=np.array([1.0,2.0,3.0])
  2. >>> y=np.array([2.0,4.0,6.0])
  3. >>> x+y
  4. array([3., 6., 9.])
  5. >>> x-y
  6. array([-1., -2., -3.])
  7. >>> x*y
  8. array([ 2., 8., 18.])
  9. >>> x/y
  10. array([0.5, 0.5, 0.5])
  11. >>> x/2.0
  12. array([0.5, 1. , 1.5])


NumPy 数组不仅可以进行 element-wise 运算,也可以和单一的数值(标量)组合起来进行运算。此时,需要在 NumPy 数组的各个元素和标量之间进行运算。这个功能也被称为广播

1.5.4 NumPy 的 N 维数组

  1. >>> A=np.array([[1,2],[3,4]])
  2. >>> print(A)
  3. [[1 2]
  4. [3 4]]
  5. >>> A.shape
  6. (2, 2)
  7. >>> A.dtype
  8. dtype('int64')
  9. >>> B=np.array([[3,0],[0,6]])
  10. >>> A+B
  11. array([[ 4, 2],
  12. [ 3, 10]])
  13. >>> A*B
  14. array([[ 3, 0],
  15. [ 0, 24]])


NumPy 数组(np.array )可以生成 N 维数组,即可以生成一维数组、二维数组、三维数组等任意维数的数组。数学上将一维数组称为向量 ,将二维数组称为矩阵 。另外,可以将一般化之后的向量或矩阵等统称为张量 (tensor)

1.5.5 广播
 

  1. >>> print(A)
  2. [[1 2]
  3. [3 4]]
  4. >>> A*10
  5. array([[10, 20],
  6. [30, 40]])
  1. >>> print(A)
  2. [[1 2]
  3. [3 4]]
  4. >>> B=np.array([10,20])
  5. >>> A*B
  6. array([[10, 40],
  7. [30, 80]])

在这个运算中,如图 1-2 所示,一维数组 B 被“巧妙地”变成了和二位数组 A 相同的形状,然后再以对应元素的方式进行运算。

1.5.6 访问元素

  1. >>> X=np.array([[51,55],[14,19],[0,4]])
  2. >>> print(X)
  3. [[51 55]
  4. [14 19]
  5. [ 0 4]]
  6. >>> X[0]
  7. array([51, 55])
  8. >>> X[0][1]
  9. 55
  10. >>> for row in X:
  11. ... print(row)
  12. ...
  13. [51 55]
  14. [14 19]
  15. [0 4]
  16. >>> X=X.flatten()
  17. >>> print(X)
  18. [51 55 14 19 0 4]
  19. >>> X[np.array([0,2,4])]
  20. array([51, 14, 0])
  21. >>> X>15
  22. array([ True, True, False, True, False, False])
  23. >>> X[X>15]
  24. array([51, 55, 19])


对 NumPy 数组使用不等号运算符等(上例中是 X > 15 ),结果会得到一个布尔型的数组。上例中就是使用这个布尔型数组取出了数组的各个元素(取出 True 对应的元素)

1.6 Matplotlib
1.6.1 绘制简单图形

  1. import numpy as np
  2. import matplotlib.pyplot as plt
  3. x=np.arange(0,6,0.1)
  4. y=np.sin(x)
  5. plt.plot(x,y)
  6. plt.show()
'
运行


1.6.2 pyplot 的功能

  1. import numpy as np
  2. import matplotlib.pyplot as plt
  3. x=np.arange(0,6,0.1)
  4. y1=np.sin(x)
  5. y2=np.cos(x)
  6. plt.plot(x,y1,label="sin")
  7. plt.plot(x,y2,linestyle="--",label="cos")
  8. plt.xlabel("x")
  9. plt.ylabel("y")
  10. plt.title('sin&cos')
  11. plt.legend()
  12. plt.show()
'
运行


1.6.3 显示图像

  1. import matplotlib.pyplot as plt
  2. from matplotlib.image import imread
  3. img = imread('OXA.png')
  4. plt.imshow(img)
  5. plt.show()

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/956996
推荐阅读
相关标签
  

闽ICP备14008679号