python,一个数组y1存放yolo的位置信息BBOX,一个y2数组存放识别的结果信息,根据y1数组按左上角的点坐标排序,y2对应跟着变化

发布时间 2023-09-21 15:31:45作者: hotzhml
import numpy as np
# 示例数据
y1 = np.array([[50, 100, 200, 300], [10, 20, 30, 40], [60, 70, 80, 90]])
y2 = np.array(['cat', 'dog', 'bird'])
# 按左上角点的坐标排序y1数组
sorted_indices = np.lexsort((y1[:, 1], y1[:, 0]))
y1_sorted = y1[sorted_indices]
# 根据排序后的索引对应调整y2数组的顺序
y2_sorted = y2[sorted_indices]
# 输出结果
print("排序后的y1数组:")
print(y1_sorted)
print("对应调整顺序后的y2数组:")
print(y2_sorted)

排序后的y1数组: [[10 20 30 40] [50 100 200 300] [60 70 80 90]]

对应调整顺序后的y2数组: ['dog' 'cat' 'bird']

以上代码使用了lexsort()函数,将y1数组按照左上角点的坐标进行排序。首先使用y1[:, 1]作为第一个排序键,表示按照y轴坐标进行排序;然后使用y1[:, 0]作为第二个排序键,表示按照x轴坐标进行排序。最后得到排序后的索引sorted_indices,通过索引将y1y2数组的顺序调整为排序后的顺序。最后输出排序后的y1数组和对应调整顺序后的y2数组。