I have two NumPy arrays with the shape (74395, 1) storing float values where arr1[0] correlates to arr2[0] and so on. I would like to sort them together in ascending order by the values stored in the second array.
As an example:
arr1: [[1] [2] [3]] arr2: [[6] [2] [4]]
wanted result:
arr1: [[2] [3] [1]] arr2: [[2] [4] [6]]
How could I do that in python?
Advertisement
Answer
Use numpy.argsort
with numpy.take_along_axis
:
ind = arr2.argsort(axis=0) np.take_along_axis(arr1, ind, axis=0) np.take_along_axis(arr2, ind, axis=0)
Output:
(array([[2], [3], [1]]), array([[2], [4], [6]]))