Skip to content

Instantly share code, notes, and snippets.

@edenau
Last active December 30, 2019 05:17
Show Gist options
  • Save edenau/a1c8b4cee421be26f5b3e1085f0a04ec to your computer and use it in GitHub Desktop.
Save edenau/a1c8b4cee421be26f5b3e1085f0a04ec to your computer and use it in GitHub Desktop.
score = np.array([70, 60, 50, 10, 90, 40, 80])
name = np.array(['Ada', 'Ben', 'Charlie', 'Danny', 'Eden', 'Fanny', 'George'])
sorted_name = name[np.argsort(score)] # an array of names in ascending order of their scores
print(sorted_name) # ['Danny' 'Fanny' 'Charlie' 'Ben' 'Ada' 'George' 'Eden']
original_name = sorted_name[np.argsort(np.argsort(score))]
print(original_name) # ['Ada' 'Ben' 'Charlie' 'Danny' 'Eden' 'Fanny' 'George']
%timeit name[np.argsort(score)]
# 1.83 µs ± 182 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)
%timeit sorted(zip(score, name))
# 3.2 µs ± 76.7 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment