1. VSCode 环境配置
注意:假设已安装 Python 和 VSCode,未安装可通过 Python官网 和 VSCode官网 下载。
步骤 1:创建 Python 虚拟环境
虚拟环境能隔离项目依赖,避免版本冲突。
- 在 VSCode 中打开终端(快捷键 Ctrl + ~),输入以下命令:
# 创建名为 venv 的虚拟环境
python -m venv venv
# 激活虚拟环境(Windows)
.\venv\Scripts\activate
激活后终端会显示 (venv),表示当前处于虚拟环境中。
步骤 2:安装 Numpy
在激活的虚拟环境中运行:
pip install numpy
验证安装是否成功:
# 在 VSCode 中新建一个 .py 文件,输入以下代码并运行
import numpy as np
print(np.__version__) # 输出类似:1.24.3
步骤 3(可选):配置 Jupyter Notebook
适合喜欢交互式学习的用户:
pip install jupyter
在 VSCode 中新建 .ipynb 文件,选择内核为虚拟环境中的 Python。
2. Numpy 核心概念
2.1 什么是数组?
- Python 列表(List):灵活但效率低,适合存储不同类型的数据。
- Numpy 数组(Array):固定类型、内存连续,适合高效数值计算。
示例:
import numpy as np
# 列表可以混合类型
my_list = [1, 2, "hello"]
# 数组会强制统一类型
my_array = np.array([1, 2, 3]) # 自动转为整数类型
print(my_array.dtype) # 输出:int32
2.2 数组维度与形状(shape)
- 维度:一维数组(向量)、二维数组(矩阵)、三维数组(立方体)。
- 形状:描述每一维的长度,例如 (3, 2) 表示 3 行 2 列的矩阵。
示例:
arr = np.array([[1, 2], [3, 4], [5, 6]])
print(arr.shape) # 输出:(3, 2)
3. 数组创建与基础操作
3.1 手动创建数组
# 从列表创建
arr1 = np.array([1, 2, 3]) # 一维数组
arr2 = np.array([[1, 2], [3, 4]]) # 二维数组
# 创建全0数组
zeros = np.zeros((2, 3)) # 2行3列的0矩阵
# 创建全1数组
ones = np.ones((3,)) # 一维数组,3个1
# 创建单位矩阵
eye = np.eye(3) # 3x3 单位矩阵
3.2 生成序列
# 类似 range,生成 [0, 10) 的整数,步长为2
arr_range = np.arange(0, 10, 2) # 输出:[0 2 4 6 8]
# 生成等间隔的5个数,范围 [0, 1]
arr_linspace = np.linspace(0, 1, 5) # 输出:[0. 0.25 0.5 0.75 1. ]
3.3 形状操作
arr = np.arange(6) # 一维数组 [0 1 2 3 4 5]
# 转换为2x3矩阵
reshaped = arr.reshape(2, 3) # 形状 (2, 3)
# [[0 1 2]
# [3 4 5]]
# 展平回一维
flattened = reshaped.flatten() # 输出:[0 1 2 3 4 5]
# 转置(行变列,列变行)
transposed = reshaped.T # 形状 (3, 2)
# [[0 3]
# [1 4]
# [2 5]]
3.4 索引与切片
arr = np.array([[1, 2, 3], [4, 5, 6]])
# 获取单个元素(第0行第1列)
print(arr[0, 1]) # 输出:2
# 切片(第1行的所有列)
print(arr[1, :]) # 输出:[4 5 6]
# 修改元素
arr[1, 2] = 99 # 数组变为 [[1, 2, 3], [4, 5, 99]]
4. 实战小项目
项目 1:学生成绩统计分析
# 模拟5个学生的3门课成绩
scores = np.array([
[85, 90, 78],
[92, 88, 76],
[75, 80, 95],
[60, 70, 65],
[98, 99, 100]
])
# 计算每门课的平均分
mean_per_subject = np.mean(scores, axis=0)
print("平均分:", mean_per_subject) # 输出:[82. 85.4 82.8]
# 找到最高分和最低分
max_score = np.max(scores)
min_score = np.min(scores)
print(f"最高分:{max_score}, 最低分:{min_score}") # 最高分:100, 最低分:60
项目 2:简单图像处理
用数组模拟黑白图像的像素矩阵(0=黑,255=白):
# 创建一个 5x5 的“图像”
image = np.array([
[0, 50, 100, 150, 200],
[255, 200, 150, 100, 50],
[0, 50, 100, 150, 200],
[255, 200, 150, 100, 50],
[0, 50, 100, 150, 200]
])
# 反转颜色(黑白互换)
inverted_image = 255 - image
# 裁剪中间 3x3 区域
cropped = image[1:4, 1:4] # 行1到3,列1到3
上篇总结
- 掌握内容:环境搭建、数组创建、形状操作、索引与切片。
- 重点提示:数组的 shape 和 dtype 是核心属性。使用 reshape 时元素总数需一致(如6个元素可转为2x3,但不能转为3x3)。
- 练习任务:用 np.arange(12) 创建一个 3x4 的数组,并计算其转置矩阵。生成一个长度为10的等差数列,范围从-5到5。
接下来可以学习中篇《进阶运算与数据处理》!需要提供代码答案或进一步解释吗?