📅  最后修改于: 2023-12-03 15:38:08.595000             🧑  作者: Mango
在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 中提取元素。输出数组的形状与索引的形状相同。
有关更多NumPy技巧,请参阅我们的其他文档。