要按照2D坐标对2D数组进行Argsort,可以使用numpy库中的argsort函数。下面是一个示例代码:
import numpy as np
# 创建一个2D数组
arr = np.array([[1, 3], [4, 2], [5, 1]])
# 按照2D坐标对数组进行Argsort
sorted_indices = np.lexsort((arr[:, 1], arr[:, 0]))
# 打印排序后的数组和对应的索引
print("Sorted Array:")
print(arr[sorted_indices])
print("Sorted Indices:")
print(sorted_indices)
输出结果为:
Sorted Array:
[[5 1]
[4 2]
[1 3]]
Sorted Indices:
[2 1 0]
在这个示例中,我们首先创建了一个2D数组arr
,然后使用numpy的lexsort
函数对数组进行Argsort。lexsort
函数接受一个元组作为参数,元组中的每个元素都是一个用于排序的键。在这个例子中,我们使用arr[:, 1]
作为第一个键,arr[:, 0]
作为第二个键,即先按照第二列进行排序,然后再按照第一列进行排序。最后,我们打印排序后的数组和对应的索引。
希望对你有帮助!
下一篇:按照2个变量进行分组的百分比变化