You can sort two arrays using one as the leading.
arr1inds = lead_arr1.argsort()
sorted_arr1 = lead_arr1[arr1inds]
sorted_arr2 = arr2[arr1inds]
The question is how would you do this if both arrays have duplicate values, and in addition you want to "collapse" the lead-array values and average the arr2 that match it..
F.e. :
sorted_arr1 = [ ...5,5,5 ...]
arr2 = [ ...4,7,8 ...]
becomes (4+7+8)/3. = 6.333 :
sorted_arr1 = [ ...5 ...]
arr2 = [ ...6.333 ...]
may be it is possible to make it using loop "for i in arr1.unique().sort()" ... but I was wondering if it is possible with pure numpy ?