Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Поиск ближайших точек путем их ранжирования

Автор вопроса: JustInTimeОтветов: 1

У меня есть N x D размерные объекты, которые мне нужно ранжировать в соответствии с их расстоянием до 1 x D размерного вектора. Есть ли быстрый способ реализовать это в python без рекурсивного применения argmin?

Спасибо!

  • Посмотрите на проблему с ближайшей парой точек inspectorG4dget 20.06.2011

pythonnumpyscipy

Ответы

Ответ 1 · рейтинг 3 · eat

Что-то очень простое - это Квадрат евклидова расстояния, и его реализация будет выглядеть так:

In []: F= randn(5, 3)
In []: t= randn(1, 3)
In []: ((F- t)** 2).sum(1)
Out[]: array([  8.80512,   4.61693,   2.6002,   3.3293,  12.41800])

Где F - объекты, а t - целевой вектор. Таким образом, рейтинг будет таким:

In []: ((F- t)** 2).sum(1).argsort()
Out[]: array([2, 3, 1, 0, 4])

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

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы