- NumPy 教程
- NumPy - 首页
- NumPy - 简介
- NumPy - 环境
- NumPy 数组
- NumPy - Ndarray 对象
- NumPy - 数据类型
- NumPy 创建和操作数组
- NumPy - 数组创建例程
- NumPy - 数组操作
- NumPy - 从现有数据创建数组
- NumPy - 从数值范围创建数组
- NumPy - 迭代数组
- NumPy - 重塑数组
- NumPy - 连接数组
- NumPy - 堆叠数组
- NumPy - 分割数组
- NumPy - 展平数组
- NumPy - 转置数组
- NumPy 索引和切片
- NumPy - 索引和切片
- NumPy - 高级索引
- NumPy 数组属性和操作
- NumPy - 数组属性
- NumPy - 数组形状
- NumPy - 数组大小
- NumPy - 数组步幅
- NumPy - 数组元素大小
- NumPy - 广播
- NumPy - 算术运算
- NumPy - 数组加法
- NumPy - 数组减法
- NumPy - 数组乘法
- NumPy - 数组除法
- NumPy 高级数组操作
- NumPy - 交换数组的轴
- NumPy - 字节交换
- NumPy - 复制和视图
- NumPy - 元素级数组比较
- NumPy - 过滤数组
- NumPy - 连接数组
- NumPy - 排序、搜索和计数函数
- NumPy - 搜索数组
- NumPy - 数组的并集
- NumPy - 查找唯一行
- NumPy - 创建日期时间数组
- NumPy - 二元运算符
- NumPy - 字符串函数
- NumPy - 数学函数
- NumPy - 统计函数
- NumPy - 矩阵库
- NumPy - 线性代数
- NumPy - Matplotlib
- NumPy - 使用 Matplotlib 绘制直方图
- NumPy - NumPy 的 I/O
- NumPy 排序和高级操作
- NumPy - 排序数组
- NumPy - 沿轴排序
- NumPy - 使用花式索引排序
- NumPy - 结构化数组
- NumPy - 创建结构化数组
- NumPy - 操作结构化数组
- NumPy - 字段访问
- NumPy - 记录数组
- Numpy - 加载数组
- Numpy - 保存数组
- NumPy - 向数组追加值
- NumPy - 交换数组的列
- NumPy - 向数组插入轴
- NumPy 处理缺失数据
- NumPy - 处理缺失数据
- NumPy - 识别缺失值
- NumPy - 删除缺失数据
- NumPy - 估算缺失数据
- NumPy 性能优化
- NumPy - 使用数组进行性能优化
- NumPy - 使用数组进行矢量化
- NumPy - 数组的内存布局
- Numpy 线性代数
- NumPy - 线性代数
- NumPy - 矩阵库
- NumPy - 矩阵加法
- NumPy - 矩阵减法
- NumPy - 矩阵乘法
- NumPy - 元素级矩阵运算
- NumPy - 点积
- NumPy - 矩阵求逆
- NumPy - 行列式计算
- NumPy - 特征值
- NumPy - 特征向量
- NumPy - 奇异值分解
- NumPy - 求解线性方程组
- NumPy - 矩阵范数
- NumPy 元素级矩阵运算
- NumPy - 求和
- NumPy - 平均值
- NumPy - 中位数
- NumPy - 最小值
- NumPy - 最大值
- NumPy 集合运算
- NumPy - 唯一元素
- NumPy - 交集
- NumPy - 并集
- NumPy - 差集
- NumPy 有用资源
- NumPy 编译器
- NumPy - 快速指南
- NumPy - 有用资源
- NumPy - 讨论
NumPy - 交换数组的轴
在 NumPy 中交换数组的轴
在 NumPy 中交换轴允许您更改数组中维度的顺序。您可以使用swapaxes() 函数和transpose() 函数在 NumPy 中交换数组的轴。
在 NumPy 中,数组可以有多个维度,每个维度称为一个轴。例如,一个二维数组(矩阵)有两个轴:行和列。在三维数组(张量)中,有三个轴:深度、高度和宽度。
- 轴 0 指的是第一个维度(通常是行)。
- 轴 1 指的是第二个维度(通常是列)。
- 轴 2 指的是第三个维度,以此类推
使用 swapaxes() 函数
NumPy 中的 np.swapaxes() 函数允许您交换数组中两个指定的轴。当您需要重新组织数组的结构时,此函数特别有用,例如在二维数组中切换行和列,或在多维数组中重新排序维度。
此函数不会创建数据的副本,而是返回交换了指定轴的数组的新视图。它不涉及在内存中复制数组的数据。
以下是 swapaxes() 函数的语法:
numpy.swapaxes(arr, axis1, axis2)
其中,
- arr 是输入数组。
- axis1 是要交换的第一个轴。
- axis2 是要交换的第二个轴。
示例
在下面的示例中,我们使用 NumPy 中的 swapaxes() 函数交换二维数组中的行和列:
import numpy as np # Creating a 2D array arr = np.array([[1, 2, 3], [4, 5, 6]]) # Swapping axes 0 and 1 (rows and columns) swapped = np.swapaxes(arr, 0, 1) print("Original Array:") print(arr) print("\nArray After Swapping Axes:") print(swapped)
获得以下输出:
Original Array: [[1 2 3] [4 5 6]] Array After Swapping Axes: [[1 4] [2 5] [3 6]]
使用 transpose() 函数
我们还可以使用 transpose() 函数在 NumPy 中交换数组的轴。与 swapaxes() 函数(交换两个特定轴)不同,transpose() 函数用于根据指定的模式重新排序数组的所有轴。
以下是 transpose() 函数的语法:
numpy.transpose(a, axes=None)
其中,
- a 是要重新排序其轴的输入数组。
- axes 是一个元组或列表,指定所需的轴顺序。如果 axes 为 None,则反转轴的顺序。
示例:矩阵转置
矩阵转置是交换二维数组的行和列的操作:
import numpy as np # Creating a 2D array (matrix) arr = np.array([[1, 2, 3], [4, 5, 6]]) # Transposing the matrix transposed = np.transpose(arr) print("Original Array:") print(arr) print("\nTransposed Array:") print(transposed)
这将产生以下结果:
Original Array: [[1 2 3] [4 5 6]] Transposed Array: [[1 4] [2 5] [3 6]]
示例:重新排序三维数组中的轴
在这里,我们使用 transpose() 函数重新排序多维数组中的维度:
import numpy as np # Creating a 3D array arr = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]]) # Transposing with custom axis order transposed = np.transpose(arr, (1, 0, 2)) print("Original Array Shape:", arr.shape) print("Transposed Array Shape:", transposed.shape) print("\nTransposed Array:") print(transposed)
这将产生以下结果:
Original Array Shape: (2, 2, 2) Transposed Array Shape: (2, 2, 2) Transposed Array: [[[1 2] [5 6]] [[3 4] [7 8]]]
广告