-
ユークリッド距離を使用する方法: ユークリッド距離は2点間の直線距離を表します。2つの座標間のユークリッド距離を計算し、最小値を持つ座標を見つけることで、最も近い座標を見つけることができます。
import math def euclidean_distance(point1, point2): x1, y1 = point1 x2, y2 = point2 return math.sqrt((x2 - x1)2 + (y2 - y1)2) def find_closest_coordinate(target, coordinates): closest_coordinate = None min_distance = float('inf') for coordinate in coordinates: distance = euclidean_distance(target, coordinate) if distance < min_distance: min_distance = distance closest_coordinate = coordinate return closest_coordinate
このコードでは、
euclidean_distance
関数で2つの座標のユークリッド距離を計算し、find_closest_coordinate
関数で最も近い座標を見つけます。 -
scipyモジュールを使用する方法: Pythonのscipyモジュールには、座標間の距離を計算するための便利な関数が含まれています。
scipy.spatial.distance
モジュールのcdist
関数を使用して、座標のペアの距離行列を計算し、最小値を持つ座標を見つけることができます。from scipy.spatial.distance import cdist def find_closest_coordinate(target, coordinates): distances = cdist([target], coordinates) min_distance_index = distances.argmin() closest_coordinate = coordinates[min_distance_index] return closest_coordinate
このコードでは、
cdist
関数を使用して距離行列を計算し、argmin
関数を使用して最小値のインデックスを見つけます。