
包含编程资料、学习路线图、源代码、软件安装包等!【[点击这里]】!

NumPy (Numerical Python) 是 Python 中用于数值计算的核心库。它提供了高性能的多维数组对象"ndarray",以及大量的数学函数来操作这些数组。NumPy 是科学计算、数据分析和机器学习等领域的基础工具。本文将介绍 30 个 NumPy 常用经典案例,帮助读者快速掌握 NumPy 的核心功能。
准备工作:
- 首先,确保你已经安装了 NumPy 库。如果没有安装,可以使用 pip 命令安装:
pip install numpy
- 然后在 Python 代码中导入 NumPy 库:
import numpy as np
一、数组创建 (5 例)
案例 1: 使用"array()"创建数组
data = [1, 2, 3, 4, 5]
arr = np.array(data)
print(arr)
print(type(arr))
案例 2: 使用"arange()"创建等差数组
arr = np.arange(0, 10, 2)
print(arr)
案例 3: 使用"zeros()"创建全零数组
arr_zeros = np.zeros((3, 4))
print(arr_zeros)
案例 4: 使用"ones()"创建全一数组
arr_ones = np.ones((2, 5), dtype=int)
print(arr_ones)
案例 5: 使用"linspace()"创建线性等分数组
arr_linspace = np.linspace(0, 1, 5)
print(arr_linspace)
二、数组属性 (3 例)
案例 6: 查看数组形状"shape"
arr = np.array([[1, 2, 3], [4, 5, 6]])
print(arr)
print("数组形状:", shape)
案例 7: 查看数组数据类型"dtype"
arr = np.array([1.0, 2.0, 3.0])
dtype = arr.dtype
print(arr)
print("数组数据类型:", dtype)
案例 8: 查看数组维度"ndim"和元素个数"size"
arr_3d = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]])
ndim = arr_3d.ndim size = arr_3d.size
print(arr_3d)
print("数组维度:", ndim)
print("数组元素个数:", size)
三、索引与切片 (4 例)
- NumPy 数组的索引和切片操作非常灵活,可以方便地访问和修改数组元素。
案例 9: 一维数组索引
arr = np.arange(10)
element = arr[5]
print(arr)
print("索引为 5 的元素:", element)
案例 10: 二维数组索引
arr_2d = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
element = arr_2d[1, 2]
print(arr_2d)
print("第二行第三列的元素:", element)
案例 11: 一维数组切片
arr = np.arange(10)
slice_arr = arr[2:7]
print(arr)
print("切片结果:", slice_arr)
案例 12: 二维数组切片
arr_2d = np.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]])
slice_arr = arr_2d[:2, 1:3]
print(arr_2d)
print("切片结果:")
print(slice_arr)
四、数组运算 (6 例)
- NumPy 数组支持元素级别的算术运算,以及广播机制,使得运算更加简洁高效。
案例 13: 数组与标量的加法
arr = np.arange(5)
result = arr + 2
print(arr)
print("数组加标量结果:", result)
案例 14: 数组与数组的加法
arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])
result = arr1 + arr2
print("数组1:", arr1)
print("数组2:", arr2)
print("数组相加结果:", result)
案例 15: 数组的元素乘法和矩阵乘法
arr1 = np.array([[1, 2], [3, 4]])
arr2 = np.array([[5, 6], [7, 8]])
element_product = arr1 * arr2
matrix_product = np.dot(arr1, arr2)
print("数组1:\n", arr1)
print("数组2:\n", arr2)
print("元素级别乘法结果:\n", element_product)
print("矩阵乘法结果:\n", matrix_product)
案例 16: 数组的比较运算
arr1 = np.array([1, 2, 3, 4, 5])
arr2 = np.array([3, 2, 5, 1, 4])
equal_arr = arr1 == arr2
greater_arr = arr1 > arr2
print("数组1:", arr1)
print("数组2:", arr2)
print("相等比较结果:", equal_arr)
print("大于比较结果:", greater_arr)
案例 17: 广播机制的应用
arr_1d = np.array([1, 2, 3])
arr_2d = np.array([[1, 2, 3], [4, 5, 6]])
result = arr_2d + arr_1d
print("一维数组:", arr_1d)
print("二维数组:\n", arr_2d)
print("广播相加结果:\n", result)
案例 18: 通用函数 (ufunc)
arr = np.arange(1, 6)
sqrt_arr = np.sqrt(arr)
exp_arr = np.exp(arr)
print(arr)
print("平方根结果:", sqrt_arr)
print("指数结果:", exp_arr)
五、常用函数 (7 例)
- NumPy 提供了丰富的函数,用于数组的统计、排序、查找等操
案例 19: 求和"sum()"
arr = np.arange(1, 10).reshape((3, 3))
sum_all = np.sum(arr)
sum_axis0 = np.sum(arr, axis=0)
sum_axis1 = np.sum(arr, axis=1)
print("数组:\n", arr)
print("所有元素求和:", sum_all)
print("按列求和:", sum_axis0)
print("按行求和:", sum_axis1)
案例 20: 求均值"mean()"
arr = np.array([[1, 2, 3], [4, 5, 6]])
mean_all = np.mean(arr)
mean_axis0 = np.mean(arr, axis=0)
print("数组:\n", arr)
print("所有元素均值:", mean_all)
print("按列求均值:", mean_axis0)
案例 21: 求最大值"max()“和最小值"min()”
arr = np.random.randint(1, 10, size=(3, 4))
max_val = np.max(arr)
min_val = np.min(arr)
print("数组:\n", arr)
print("最大值:", max_val)
print("最小值:", min_val)
案例 22: 查找最大值和最小值的索引"argmax()“和"argmin()”
arr = np.array([3, 1, 4, 1, 5, 9, 2, 6])
argmax_index = np.argmax(arr)
argmin_index = np.argmin(arr)
print("数组:", arr)
print("最大值索引:", argmax_index)
print("最小值索引:", argmin_index)
案例 23: 排序"sort()"
arr = np.random.randint(1, 20, size=10)
sorted_arr = np.sort(arr)
arr.sort()
print("原始数组:", arr)
print("排序后的数组:", sorted_arr)
案例 24: 去重"unique()
arr = np.array([1, 2, 2, 3, 3, 3, 4, 4, 4, 4])
unique_arr = np.unique(arr)
print("原始数组:", arr)
print("去重后的数组:", unique_arr)
案例 25: 条件查找"where()
arr = np.arange(10)
indices = np.where(arr > 5)
values = arr[np.where(arr > 5)]
print("数组:", arr)
print("大于 5 的元素索引:", indices)
print("大于 5 的元素值:", values)
六、线性代数 (5 例)
- NumPy 的"linalg"子模块提供了常用的线性代数运算功能。
案例 26: 矩阵转置"T"或 “transpose()”
matrix = np.array([[1, 2, 3], [4, 5, 6]])
transposed_matrix = matrix.T
print("原始矩阵:\n", matrix)
print("转置矩阵:\n", transposed_matrix)
案例 27: 矩阵的迹"trace()"
matrix = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
trace_val = np.trace(matrix)
print("矩阵:\n", matrix)
print("矩阵的迹:", trace_val)
案例 28: 计算行列式"linalg.det()"
matrix = np.array([[1, 2], [3, 4]])
determinant = np.linalg.det(matrix)
print("矩阵:\n", matrix)
print("行列式:", determinant)
案例 29: 计算逆矩阵"linalg.inv()"
matrix = np.array([[1, 2], [3, 4]])
inverse_matrix = np.linalg.inv(matrix)
print("原始矩阵:\n", matrix)
print("逆矩阵:\n", inverse_matrix)
案例 30: 计算特征值和特征向量"linalg.eig()
matrix = np.array([[1, -2], [2, -3]])
eigenvalues, eigenvectors = np.linalg.eig(matrix)
print("矩阵:\n", matrix)
print("特征值:", eigenvalues)
print("特征向量:\n", eigenvectors)
- 本文介绍了 NumPy 中常用的 30 个经典案例,涵盖了数组创建、属性查看、索引切片、数组运算、常用函数和线性代数等核心功能。 通过学习这些案例,大家可以快速入门 NumPy,为后续的科学计算和数据分析任务打下基础。

总结
- 最后希望你编程学习上不急不躁,按照计划有条不紊推进,把任何一件事做到极致,都是不容易的,加油,努力!相信自己!
文末福利
- 最后这里免费分享给大家一份Python全套学习资料,希望能帮到那些不满现状,想提升自己却又没有方向的朋友,也可以和我一起来学习交流呀。
包含编程资料、学习路线图、源代码、软件安装包等!【[点击这里]】领取!
- ① Python所有方向的学习路线图,清楚各个方向要学什么东西
- ② 100多节Python课程视频,涵盖必备基础、爬虫和数据分析
- ③ 100多个Python实战案例,学习不再是只会理论
- ④ 华为出品独家Python漫画教程,手机也能学习
可以扫描下方二维码领取【保证100%免费】