Я новичок в 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. Любая помощь приветствуется.