簡體   English   中英

Python:獲取CSV文件的行號,該文件與點的歐幾里得距離最小

[英]Python: Obtain the row number of a CSV file which has the minimum Euclidean distance from a point

我有一個CSV 文件,其中包含 R、G、B 列。這三列代表空間中某個點的 [X、Y、Z] 坐標。 我也有一個坐標為:[78, 95, 44] 的點 A。

我想要實現的是計算 CSV 文件上的每個點(由 R、G、B 列組成)的該點 A 的歐幾里得距離。 計算完所有距離后,我想獲得具有最小歐幾里得距離的文件的行數。

以下代碼計算兩點之間的歐幾里得距離:

import math
p1 = [4, 0, 9]
p2 = [6, 6, 3]
distance = math.sqrt( ((p1[0]-p2[0])**2)+((p1[1]-p2[1])**2)+((p1[2]-p2[2])**2) )

print(distance)

如何使用 Python 實現這一目標?

在這里你 go (最后第一行是最小距離):

import pandas as pd
import math

def calc_distance(x):
    A = [4, 0, 9] # replace this with your A values
    return math.sqrt(((A[0]-x['R'])**2)+((A[1]-x['G'])**2)+((A[2]-x['B'])**2))

    df = pd.read_csv('fuel_veg_cover.csv')
   df['distance'] = df.apply(calc_distance, axis=1)
   df = df.sort_values(by=['distance'])
   df

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM