NumPy创建多维数组教程 - Python科学计算基础指南
- Python
- 2025-08-16
- 677
NumPy多维数组创建教程
掌握高效构建和操作多维数组的核心技术,提升Python科学计算能力
NumPy数组简介
NumPy是Python科学计算的核心库,提供了高性能的多维数组对象ndarray
。与Python原生列表相比,NumPy数组具有以下优势:
- 更紧凑的内存使用
- 更快的执行速度(向量化操作)
- 丰富的数学函数库
- 便捷的多维数据操作
在数据科学、机器学习和科学计算领域,NumPy数组是处理数值数据的标准工具。本教程将重点介绍如何创建和操作多维数组。
创建多维数组
1. 从Python列表创建
使用np.array()
函数是最直接的创建方式:
import numpy as np
# 创建一维数组
arr1d = np.array([1, 2, 3, 4, 5])
# 创建二维数组
arr2d = np.array([[1, 2, 3], [4, 5, 6]])
# 创建三维数组
arr3d = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]])
2. 创建全零数组
使用np.zeros()
创建指定形状的全零数组:
# 创建3x3的二维全零数组
zeros_2d = np.zeros((3, 3))
# 创建2x3x4的三维全零数组
zeros_3d = np.zeros((2, 3, 4))
3. 创建全一数组
使用np.ones()
创建指定形状的全一数组:
# 创建4x4的二维全一数组
ones_2d = np.ones((4, 4))
# 创建2x2x2的三维全一数组
ones_3d = np.ones((2, 2, 2))
特殊数组创建
1. 创建单位矩阵
使用np.eye()
或np.identity()
创建单位矩阵:
# 创建3x3单位矩阵
identity_matrix = np.eye(3)
# 另一种方式
identity_matrix2 = np.identity(4)
2. 创建对角矩阵
使用np.diag()
创建对角矩阵:
# 创建对角线为[1,2,3]的矩阵
diag_matrix = np.diag([1, 2, 3])
3. 创建等差数列
使用np.arange()
和np.linspace()
创建等差数列:
# 创建0-9的数组
arr1 = np.arange(10)
# 创建5-50,步长为5的数组
arr2 = np.arange(5, 55, 5)
# 创建0-10之间等间隔的5个点
arr3 = np.linspace(0, 10, 5) # [0, 2.5, 5, 7.5, 10]
4. 创建随机数组
使用np.random
模块创建随机数组:
# 创建2x3的[0,1)区间均匀分布数组
rand_arr = np.random.rand(2, 3)
# 创建3x3的标准正态分布数组
randn_arr = np.random.randn(3, 3)
# 创建1-100之间的3x3随机整数数组
randint_arr = np.random.randint(1, 100, size=(3, 3))
数组重塑技巧
1. 改变数组形状
使用reshape()
方法改变数组维度:
# 创建一维数组
arr = np.arange(12)
# 重塑为3x4二维数组
arr_2d = arr.reshape(3, 4)
# 重塑为2x2x3三维数组
arr_3d = arr.reshape(2, 2, 3)
2. 自动推断维度
使用-1
自动计算维度大小:
# 自动计算行数
arr = np.arange(20)
arr_4col = arr.reshape(-1, 4) # 5行4列
# 自动计算列数
arr_5row = arr.reshape(5, -1) # 5行4列
3. 展平多维数组
使用flatten()
或ravel()
将多维数组转为一维:
arr_2d = np.array([[1, 2, 3], [4, 5, 6]])
# 使用flatten方法(返回拷贝)
flat_arr = arr_2d.flatten()
# 使用ravel方法(返回视图)
ravel_arr = arr_2d.ravel()
数组基本操作
1. 数组索引
NumPy支持多种索引方式:
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
# 获取单个元素
print(arr[1, 2]) # 输出: 6
# 获取整行
print(arr[1]) # 输出: [4, 5, 6]
# 获取整列
print(arr[:, 1]) # 输出: [2, 5, 8]
2. 数组切片
切片操作与Python列表类似:
# 获取前两行
print(arr[:2])
# 获取最后两列
print(arr[:, -2:])
# 获取子矩阵
print(arr[1:, 1:])
3. 数组运算
NumPy支持向量化运算:
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
# 逐元素加法
print(a + b) # [5, 7, 9]
# 逐元素乘法
print(a * b) # [4, 10, 18]
# 矩阵乘法
matrix_a = np.array([[1, 2], [3, 4]])
matrix_b = np.array([[5, 6], [7, 8]])
print(np.dot(matrix_a, matrix_b))
总结
掌握NumPy多维数组的创建和操作是Python科学计算的基础。关键点包括:
- 使用
np.array()
从Python列表创建数组 - 利用
np.zeros()
、np.ones()
创建特殊数组 - 使用
reshape()
改变数组维度 - 熟练运用索引和切片操作
- 利用向量化运算提高效率
NumPy的多维数组为数据科学和机器学习提供了强大的基础数据结构,值得深入学习掌握。
本文由XuXiLan于2025-08-16发表在吾爱品聚,如有疑问,请联系我们。
本文链接:https://www.521pj.cn/20258310.html
发表评论