получение индекса ближайших точек в списке позиций x, y - PullRequest
0 голосов
/ 19 февраля 2020

Я новичок в python, я хочу сделать следующее, но у меня проблема с синтаксисом:

У меня есть файл данных, содержащий два столбца x и y (400пунктов). Я хочу создать список (или словарь) точек так, чтобы у каждого элемента в списке были индексы ближайших точек. Ближайшие точки определяются исходя из расстояний. Например: для точки 1 он вычисляет расстояния от всех других точек, а затем принимает только значения, которые меньше 12. Затем он добавляет в список индексы тех точек, которые меньше 12. И этот процесс продолжается для всех 400 точек в файле данных. Таким образом, список (то есть «listN») будет содержать: (например)

listN [0] = {4,5,7}

listN [1] = {5,6, 8}

listN [3] = {6,9}

.....

listN [400] = {394,396,397}

здесь ListN содержит i = 400 точек, и для каждого i значения в фигурных скобках являются индексами ближайших координат x, y. Вот как далеко я зашёл,

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd

x_y_data = pd.read_csv("x_y_points400_labeled_csv.csv")
x = x_y_data.loc[:,'x']
y = x_y_data.loc[:,'y']
length_x = len(x)

listN={}

for i in range(length_x):
    DistX = (x[i]-x)
    DistY = (y[i]-y)
    DistXY= np.sqrt(DistX**2+DistY**2)
    j=0
    while j in DistXY<12:
        j+=1
    listN.update(DistXY)

Я знаю, что это не завершено, и когда я запускаю это, это выдает мне ошибку:

"Истинное значение Серии неоднозначно. Используйте a.empty, a.bool (), a.item (), a.any () или a.all (). "

Я думаю, что правильная версия кода имеет повторяться дважды. То есть, если я рассматриваю точку «i», мне нужно найти расстояния между точками, которые i + 1 и i-1, ко всему набору данных. Так что, я думаю, я не очень знаком с их определением в python. Любая помощь приветствуется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...