У меня есть сценарий использования, в котором у меня есть набор из нескольких тысяч координат, и я хочу векторизовать их и превратить в расстояния. Я хочу сделать это таким образом, чтобы я в итоге получил двумерный массив, фактически матрицу, то есть n x n, что дает мне норму между входными точками. Я знаю, что у меня будет куча нулей по диагонали, и это нормально. Я хочу обработать это как можно быстрее.
В настоящее время мой метод состоит в том, чтобы взять массив массивов координат x, y, z - это строка, и в списке, тем не менее, загружается много элементов из файла, например 5000 строк.
В настоящее время я просто перебираю список координат следующим образом:
for i in range(n):
for j in range(n):
dist[i,j] = round(numpy.linalg.norm(coords[i] - coords[j]), 3)
dist - настройка массива numpy с numpy.zeros((n,n))
, где я уже получил значение n, являющееся длиной списка координат.
Я знаю, что должен быть более быстрый способ использования numpy в этом наборе данных, конечно, делая координаты массивом, я просто не уверен, как это сделать эффективно. Одна из причин, по которой я хочу это сделать, заключается в том, что я собираюсь использовать маску таблицы истинности для обработки данных. Спасибо!