- 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 数组中交换列是指交换数组中两列或多列的位置。此操作可以对一维和多维数组执行。
交换列的主要方法涉及**切片**和**索引**,这允许您根据需要访问和重新排列列。
使用索引交换列
使用索引在 NumPy 数组中交换列是一种技术,通过根据索引选择和重新分配特定列来更改二维数组中列的顺序。
示例
在下面的示例中,我们使用索引交换二维 NumPy 数组的“第一”列和“最后一”列:
import numpy as np # Creating a 2D NumPy array arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) # Swapping the first and last columns arr[:, [0, 2]] = arr[:, [2, 0]] print("Array after swapping columns:") print(arr)
以下是获得的输出:
Array after swapping columns: [[3 2 1] [6 5 4] [9 8 7]]
交换多列
在 NumPy 数组中交换多列涉及同时更改两列以上列的顺序。该过程使用高级索引来指定要交换的列及其新位置。
示例
在这个例子中,我们交换二维数组的三列,第一列移到第三个位置,第二列移到第一个位置,第三列移到第二个位置:
import numpy as np # Create a 2D array arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) # Swap columns in the order: 1st to 3rd, 2nd to 1st, 3rd to 2nd arr[:, [0, 1, 2]] = arr[:, [1, 2, 0]] print("Array after swapping columns:") print(arr)
这将产生以下结果:
Array after swapping columns: [[2 3 1] [5 6 4] [8 9 7]]
交换三维数组中的列
在 NumPy 中交换三维数组中的列涉及重新排列数组沿其一个轴上的元素,通常是**第二个轴**(轴 1),在处理三维数组的切片时,它对应于列。
示例
在下面的示例中,我们沿着三维数组的第二个轴(轴 2)交换第一列和最后一列。数组沿着前两个轴切片,第三个轴被索引以执行列交换:
import numpy as np # Creating a 3D NumPy array arr = np.array([[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]]) # Swapping the first and last columns along the second axis arr[:, :, [0, 2]] = arr[:, :, [2, 0]] print("3D array after swapping columns:") print(arr)
以上代码的输出如下:
3D array after swapping columns: [[[ 3 2 1] [ 6 5 4]] [[ 9 8 7] [12 11 10]]]
交换非相邻列
在 NumPy 数组中交换非相邻列是指重新排列不直接相邻的列。
此操作可以在二维和三维数组中执行,它使用高级索引技术来指定要交换的列。
示例
在下面的示例中,我们使用高级索引在二维 NumPy 数组中交换非相邻列,即第一列和第三列:
import numpy as np # Create a 2D array arr = np.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]]) # Swap the first (index 0) and third (index 2) columns arr[:, [0, 2]] = arr[:, [2, 0]] print("Array after swapping non-adjacent columns:") print(arr)
获得的输出如下所示:
Array after swapping non-adjacent columns: [[ 3 2 1 4] [ 7 6 5 8] [11 10 9 12]]
交换结构化数组中的列
要交换结构化数组中的列,我们需要重新排列结构化数组中的字段,同时保持每个记录的完整性。
NumPy 中的结构化数组允许您定义具有异构数据类型的数组,并且数组的每个元素可以包含多个字段。
示例
在这个例子中,我们使用基于字段的索引在结构化 NumPy 数组中交换列“A”和“C”:
import numpy as np # Create a structured array dtype = [('A', 'i4'), ('B', 'i4'), ('C', 'i4')] arr = np.array([(1, 2, 3), (4, 5, 6), (7, 8, 9)], dtype=dtype) # Swap columns 'A' and 'C' arr[['A', 'C']] = arr[['C', 'A']] print("Structured array after swapping columns 'A' and 'C':") print(arr)
执行上述代码后,我们将得到以下输出:
Structured array after swapping columns 'A' and 'C': [(3, 2, 1) (6, 5, 4) (9, 8, 7)]
使用 swapaxes() 函数交换列
我们可以使用 np.swapaxes() 函数进行涉及多个轴的更复杂操作。此函数允许您交换数组的两个指定轴,这在高维数组中特别有用。
以下是语法:
numpy.swapaxes(a, axis1, axis2)
其中,
- **a:** 要交换轴的输入数组。
- **axis1:** 要交换的第一个轴。
- **axis2:** 要交换的第二个轴。
示例
在下面的示例中,我们使用 np.swapaxes() 函数交换第二个轴和第三个轴,有效地重新排序三维数组中的列:
import numpy as np # Creating a 3D NumPy array arr = np.array([[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]]) # Swapping axes 1 and 2 arr_swapped = np.swapaxes(arr, 1, 2) print("3D array after swapping axes:") print(arr_swapped)
产生的结果如下:
3D array after swapping axes: [[[ 1 4] [ 2 5] [ 3 6]] [[ 7 10] [ 8 11] [ 9 12]]]