Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python:获取CSV文件的行号,该文件与点之间的欧几里德距离最小_Python_Python 3.x_Pandas_Math - Fatal编程技术网

Python:获取CSV文件的行号,该文件与点之间的欧几里德距离最小

Python:获取CSV文件的行号,该文件与点之间的欧几里德距离最小,python,python-3.x,pandas,math,Python,Python 3.x,Pandas,Math,我有a和列R,G,B。这三列代表空间中一个点的[X,Y,Z]坐标。一、 另外,还有一个坐标为[78,95,44]的点a 我想要实现的是计算这个点A到CSV文件上每个点(由列R、G、B组成)的欧氏距离。计算完所有距离后,我想得到文件的行数,它具有最小的欧氏距离 以下代码计算两点之间的欧氏距离: import math p1 = [4, 0, 9] p2 = [6, 6, 3] distance = math.sqrt( ((p1[0]-p2[0])**2)+((p1[1]-p2[1])**2)+(

我有a和列R,G,B。这三列代表空间中一个点的[X,Y,Z]坐标。一、 另外,还有一个坐标为[78,95,44]的点a

我想要实现的是计算这个点A到CSV文件上每个点(由列R、G、B组成)的欧氏距离。计算完所有距离后,我想得到文件的行数,它具有最小的欧氏距离

以下代码计算两点之间的欧氏距离:

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实现这一点?

给你(最后第一行是最小距离):


这不是其他人做作业的地方……这不是作业问题。我正在努力实现更复杂的目标。我只分享了我卡住的部分。第一个提示:找到距离最小的点相当于找到平方距离最小的点,因此您可以删除
math.sqrt
调用
math.sqrt
。是的。使用divkrsh编写的内容如果OP感兴趣的是最近的点,您也可以使用
df.idxmin()
而不是
df.sort\u值。
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