python,一个数组y1存放yolo的位置信息BBOX,一个y2数组存放识别的结果信息,根据y1数组按左上角的点坐标排序,y2对应跟着变化
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
,通过索引将y1
和y2
数组的顺序调整为排序后的顺序。最后输出排序后的y1
数组和对应调整顺序后的y2
数组。