jk's notes
  • 第一章 Python 入门

第一章 Python 入门

主要讲解 Python 的基本语法与 NumPy 和 Matplotlib 包的基本使用.

本章还介绍了环境. 只是书比较老, Python 使用的是 3.4.1 的版本, 环境已经不适合了, 验证后使用 Python 3.13.5 也是可以的. 并且所使用环境为 Miniconda.

这里将主要内容整理一下, 主要是环境的基本配置.

1. 准备环境

操作步骤:

  1. 创建 deep01 环境, 并安装 python 3.13.5.
  2. 激活该环境. 安装 numpy, matplotlib, 和 jupyter.
  3. 运行 notebook 创建 01-python入门 目录与文件, 来执行代码.

这里使用了清华源:

配置 conda

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/linux-64/
conda config --set show_channel_urls yes

配置 pip

pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
conda create -n deep01 python==3.13.5 -y
conda activate deep01
cd ~/Desktop
mkdir deep01
cd deep01
pip install numpy
pip install matplotlib
pip install jupyter
jupyter notebook

2. 基本语法

主要介绍了 Python 基本语法, NumPy 的语法, 以及 Matplotlib 的基本用法.

2.1 Python 的语法

主要介绍了:

  1. 基本是算术运算, 以及基本的数据类型, 和 type() 函数, 来查看类型.
  2. 介绍了变量的定义规则与使用 (直接赋值使用, 无声明语法).
  3. 介绍了列表数据类型, 元组类型, 字典类型. 以及列表类型的索引, 切片, 长度获取等函数.
  4. 介绍了 if 语句, for 语句.
  5. 介绍了函数的定义 (基本用法). 介绍了类的写法 (定义, __init__, 与方法).
  6. 介绍脚本 (py 文件).

非常基本的语句, 作者推荐了蟒蛇蛋书来深入 Python 语言. 但愿后续只会用法这些内容.

2.2 Numpy 的语法

numpy 是基于数组来运算的.

同时简要说明了什么是标量, 向量, 矩阵, 以及张量.

主要内容包括

  1. 创建 numpy 数组. 使用 np.array([...]).
  2. 算术运算. 基于 numpy 的算术运算是数组每一个位置上的数据相对应的进行运算.
  3. 标量与数组的运算. 会作用到每一个数组元素上运算.
  4. N 维数组的定义 (np.array([[...], [...]])), 以及 shape 属性, 查看数组形状. 以及 dtype 属性, 查看数组元素类型. N 维数组间的运算也是对应元素上的数据一一运算. 所以要求两个数组形状相同.
  5. 介绍了广播 (broadcast). 允许形状不同的两个数组一起进行乘法运算. 会通过复制"小"数组, 来补全与大数组形状不同的部分, 然后再进行对应位置上的元素相乘. 这里的难点是怎么补全.
  6. (高级用法) 最后介绍了访问元素的方法. 利用索引 (需要注意层级), flatten() 方法 (转为一维数组), 以及使用数组索引来访问数组的多个位置上的元素 (利用数组来生成数组). 以及关系表达式作为索引的过滤方法.
  7. 补充了 np.arange(start, end, step) 方法, 来生成数组.

作为补充, 作者说明了 Python 的性能其实很低, 但是很多耗性能的逻辑都是使用 C 等语言编写的, 所以使用起来性能依旧可以满足.

导入语法一般使用:

import numpy as np

作为高级用法, 将案例记录下来:

m = np.array([[1,2,3,4], [5,6,7,8], [7,8,9,10]])
m.shape # (3, 4)
arr = m.flatten() # [1,2,3,4,5,6,7,8,7,8,9,10]
arr > 5 # [False,False,False,False,False,True,True,True,True,True,True,True]
arr[arr > 5] # [6,7,8,7,8,9,10]

image-20251023002049086

2.3 Matplotlib 的基本用法

导入语法一般为:

import matplotlib.pyplot as plt

基本用法了整理为:

  1. 根据算法生成 x 数组, 以及与之对应的 y 数组, 其元素一一对应可以构成坐标.
  2. 利用 plt.plot(x, y) 方法即可按照坐标在内存中绘制出图形 (自动使用平滑曲线).
  3. 调用 plt.show() 显示图片.

补充:

  • 允许在一套坐标系中绘制多组图像, 只需要调用 plt.plot(x, y) 即可 (使用不同的 y).
  • 绘制方法 plot() 可配置参数:
    • linestyle = "--" 可以绘制虚线, 默认是实线.
    • label="..." 可以给图像定义标记, 在使用 plt.legend() 方法时会显示对应图例.
  • 使用 plt.xlabel('...') 与 plt.ylabel('...') 可以为坐标轴设置显示文案.
  • plt.title('...') 方法可以为函数图像设置标题.

使用 matplotlib.image 中的 imread() 函数, 可以读取图片, 将其返回值给 plt.imshow() 可以显示图像.

image-20251023003521724

图片需要放在执行 python 代码文件所在的目录即可.

3. 结束

最终作者推荐了两本书作为补充:

  • Python 语言机器应用 (蟒蛇蛋书), 补充了 Python 语言的使用.
  • 利用 Python 进行数据分析, 补充了 NumPy 的使用.

image-20251023004758720

Last Updated: 10/23/25, 12:55 AM
Contributors: jk