📌  相关文章
📜  如何使用给定的索引位置重新排列 2D NumPy 数组的列?(1)

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

如何使用给定的索引位置重新排列 2D NumPy 数组的列?

在NumPy中,您可以通过 numpy.take_along_axis 方法来使用给定索引位置重新排列2D数组的列。

以下是一个使用 take_along_axis 对2D NumPy数组的列进行重新排列的示例:

import numpy as np

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

# 创建一个用于重新排列列的索引数组
index = np.array([2, 0, 1])

# 使用 take_along_axis 重新排列列
arr_reordered = np.take_along_axis(arr, index, axis=1)

print(arr_reordered)

输出:

array([[3, 1, 2],
       [6, 4, 5],
       [9, 7, 8]])

在上面的示例中,我们首先创建了一个2D数组 arr,并创建了一个索引数组 index,用于指定要重新排列的列的顺序。

然后,我们使用 numpy.take_along_axis 方法将原始数组 arr 沿着 axis=1 (列) 的轴按照索引数组 index 中的顺序重新排列。最终得到了重新排列后的 NumPy 数组 arr_reordered

下面是 numpy.take_along_axis 方法的完整文档:

numpy.take_along_axis(arr, indices, axis)

将给定的索引轴的值从 arr 中提取出来,并根据这些值从 arr 中提取元素。输出数组的形状与索引的形状相同。

  • arr:要提取值的输入数组
  • indices:指定从输入数组中取出元素的索引的数组。必须与 arr 具有相同的形状,除了将被提取的轴的维度外。
  • axis:要在其上提取索引的轴。默认是最后一个轴。

有关更多NumPy技巧,请参阅我们的其他文档。