如何交换给定 NumPy 数组的列?
当涉及到操作 NumPy 数组时,有时您可能希望交换两个列的位置。在本文中,我们将介绍四种不同的技术来交换给定 NumPy 数组中的列:利用高级索引、使用 NumPy 索引、利用 np.swapaxes 函数以及利用直接赋值。我们将通过示例理解这些方法。
方法 1:利用高级索引
通过利用高级索引的潜力,您可以重新塑造 NumPy 数组中测量行动的方式,感谢有选择性的精心策划的列索引程序。
示例
在下面的示例中,我们生成一个 NumPy 数组,并使用高级索引来交换第 1 列和第 2 列。
import numpy as np
array = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
array[:, [1, 2]] = array[:, [2, 1]]
print(array)
输出
[[1 3 2]
[4 6 5]
[7 9 8]]
方法 2:使用 NumPy 索引
NumPy 索引允许您通过指定列的索引值来创建一个具有所需列顺序的新数组。
示例
在下面的示例中,我们创建了一个 NumPy 数组,并使用 NumPy 索引的技巧来交换第1列和第2列。
import numpy as np
array = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
array = array[:, [0, 2, 1]]
print(array)
输出
[[1 3 2]
[4 6 5]
[7 9 8]]
方法3:利用np.swapaxes函数
np.swapaxes函数可以用于交换NumPy数组的两个轴。要交换列,可以首先转置数组,交换行,然后再转置回来。
示例
在下面的示例中,我们生成一个NumPy数组并利用np.swapaxes函数交换第1列和第2列。
import numpy as np
array = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
array = array.T
array[[1, 2]] = array[[2, 1]]
array = array.T
print(array)
输出
[[1 3 2]
[4 6 5]
[7 9 8]]
方法四:利用直接赋值
可以通过创建一个列的临时副本来使用直接赋值在NumPy数组中交换列。
示例
在下面的示例中,我们生成一个NumPy数组,并利用直接赋值来交换第1列和第2列。
import numpy as np
array = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
temp = array[:, 1].copy()
array[:, 1] = array[:, 2]
array[:, 2] = temp
print(array)
输出
[[1 3 2]
[4 6 5]
[7 9 8]]
结论
在本文中,我们探讨了在NumPy数组中交换列的不同方法。我们讨论了高级索引、NumPy索引、np.swapaxes函数和直接赋值。每种方法都为您提供了一种简单高效的交换列的方式,以满足您特定需求的独特性。通过吸收语法和审阅这些技术的示例,您可以选择最适合您数据处理的方法。
总而言之,在NumPy数组中重新排序列的能力,展示了在数据处理和分析领域中的无价技能。