Я хотел бы рассчитать расстояния от каждой точки до каждой другой точки в Python, и я хочу сделать это с помощью цикла.
У меня есть решение с помощью proc sql, и я попробовал его с Python, но получил разные числа .
Вот моя таблица и код расстояния от одной точки до других точек:
import pandas as pd
data = {
'object': ['A', 'B', 'C', 'D'],
'value1': [79.826732673, 78.268876611, 64.04744255, 58.866103739],
'value2': [2.7227722772, 2.7624309392, 2.8910303929, 3.6188178528]
}
df = pd.DataFrame(data)
Это должен быть результат для A
x = df0["value1"]
y = df0["value2"]
x_ref = 79.826732673
y_ref = 2.7227722772
dist = np.sqrt((x-x_ref)**2 + (y-y_ref)**2) # euklidean distance
np.mean(dist)
Когда я использую цикл для определения расстояния от каждой точки до каждой точки, я получаю неверные числа.
for i in range(0,3):
x_ref = df0.iloc["value1"]
y_ref = df0.iloc["value2"]
eklidean = np.sqrt((df0["value1"] - x_ref)**2 + (df0["value2"] - y_ref)**2)
eklidean
object
A 15.780187
B 14.222015
C 0.000000
D 5.232203
dtype: float64
Не могли бы вы подсказать, что я делаю неправильно в цикле?
Вот также возможное решение в SAS proc sql (без цикл):
DATA points;
INPUT object $ value1 value2;
DATALINES;
A 79.826732673 2.7227722772
B 78.268876611 2.7624309392
C 64.04744255 2.8910303929
D 58.866103739 3.6188178528
;
RUN;
PROC SQL;
CREATE TABLE kombinations AS
SELECT a.object, A.value1, B.value1 as value1_dup, A.value2, B.value2 as value2_dup
FROM points a, points b;
QUIT;
proc sql; create table calculation as select *, sqrt((value1 - value1_dup)**2 + (value2 - value2_dup)**2) as euklidean from kombinations; quit;
proc sql; create table object_group as select object, avg(euklidean) as avg_euklidean from calculation group by object; quit;
Подробнее здесь: https://stackoverflow.com/questions/791 ... lution-wit
Евклидово расстояние от каждой точки до любой другой точки в Python + решение с помощью proc sql ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Как рассчитать евклидово расстояние между двумя тензорами в Tensor Java 0.5.0
Anonymous » » в форуме JAVA - 0 Ответы
- 28 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Сходство строк с Python + Sqlite (расстояние Левенштейна/расстояние редактирования)
Anonymous » » в форуме Python - 0 Ответы
- 28 Просмотры
-
Последнее сообщение Anonymous
-