TGViewer
Data Science: Алгоритмы и Структуры данных Data Science: Алгоритмы и Структуры данных @structuredata · 7.64K subscribers
Post #4474 605
Почему argsort(argsort(x)) возвращает ранги элементов массива

Однажды мне понадобилось вычислить ранги элементов массива, или другими словами, на какой позиции окажется каждый элемент после сортировки.

Беглый поиск по интернету дал неожиданно короткий ответ: достаточно применить двойной argsort —argsort(argsort(x)) из библиотеки NumPy. Фокус работает, но почти нигде не объясняется почему именно. Обращаться с таким вопросом к ChatGPT тогда казалось рискованным — в интернете как раз ходили мемы о его ошибках в арифметике. Отсутствие строгого обоснования не давало мне покоя, и в итоге я решил дойти до доказательства самостоятельно.

Ниже я поделюсь этим доказательством. Оно не претендует на уникальность — возможно, существуют более короткие или более элегантные способы прийти к тому же ответу. Тем не менее, оно позволит вам понять, почему двойной argsort действительно возвращает ранги элементов, и избавит вас от необходимости тратить время на самостоятельное разбирательство.

На самом деле в Python в библиотеке scipy уже есть функция rankdata, которая реализует то, что нам нужно. Единственное отличие — rankdata возвращает ранги начиная с 1, тогда как argsort использует нулевую индексацию. Чуть ниже мы сравним их результаты, а пока формализуем нашу задачу.

https://habr.com/ru/articles/1019144/

Алгоритмы и Структуры данных
  • ❤ 1
More from @structuredata
  1. Oct 18, 2026➕ ➕ 7 сортировок массивов по экспозиции С++ с иллюстрациями В этой статье мы демонстрируем…
  2. Oct 18, 2026Онлайн-курс «Алгоритмы: теория и практика. Методы» В бесплатном курсе от Computer Science…
  3. Oct 17, 2026​Задумывались ли вы, как получают таблицу судоку? Её генерируют специальными алгоритмами (…
  4. Oct 17, 2026​Ищем повторяющиеся элементы в массиве Предположим, вам нужно найти дубликат элемента в ма…
  5. Oct 16, 2026Курс по программированию классических алгоритмов на C++ для школьников В школах нередко ин…
  6. Oct 16, 2026Фантастические графы и какими они бывают С графами мы часто сталкиваемся в реальном мире.…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →