📜  如何交换给定 NumPy 数组的列?(1)

📅  最后修改于: 2023-12-03 15:08:13.334000             🧑  作者: Mango

如何交换给定 NumPy 数组的列?

在处理NumPy数组时,有时需要交换数组的列。本文介绍如何用NumPy实现两列之间的交换。

NumPy数组的基本操作

首先,我们来看一下如何创建一个NumPy数组及其基本操作。

import numpy as np

# 创建一个3x4的NumPy数组
arr = np.array([[1, 2, 3, 4],
                [5, 6, 7, 8],
                [9, 10, 11, 12]])

# 获取数组的形状
print(arr.shape)  # 输出 (3, 4)

# 获取数组的行数和列数
num_rows, num_cols = arr.shape
print(num_rows, num_cols)  # 输出 3 4

# 访问数组的第一行第二列的值
print(arr[0, 1])  # 输出 2

# 访问数组的第二列
print(arr[:, 1])  # 输出 [ 2  6 10]
交换数组的两列

接下来,我们考虑如何交换NumPy数组中的两列。我们可以使用Python的切片操作来交换数组的两列。

# 交换数组的第一列和第二列
arr[:, [0, 1]] = arr[:, [1, 0]]
print(arr)

输出结果为:

[[ 2  1  3  4]
 [ 6  5  7  8]
 [10  9 11 12]]

代码解释:

  • arr[:, [0, 1]] 选择数组的第一列和第二列
  • arr[:, [1, 0]] 将第一列和第二列互换
  • arr[:, [0, 1]] = arr[:, [1, 0]] 将交换后的列赋值给原始数组的第一列和第二列
参考文献
  1. Python NumPy Tutorial – Arrays in Python