- NumPyを使用した方法: NumPyは高速な数値計算ライブラリであり、ペアワイズ距離計算に便利です。以下は、NumPyを使用してユークリッド距離を計算する例です。
import numpy as np
def pairwise_distance_numpy(points):
n = len(points)
distances = np.zeros((n, n))
for i in range(n):
for j in range(i+1, n):
distances[i, j] = np.linalg.norm(points[i] - points[j])
distances[j, i] = distances[i, j]
return distances
# 使用例
points = np.array([[1, 2], [3, 4], [5, 6]])
distances = pairwise_distance_numpy(points)
print(distances)
- SciPyを使用した方法:
SciPyは科学技術計算のためのライブラリであり、距離計算にも便利です。以下は、SciPyの
cdist
関数を使用してユークリッド距離を計算する例です。
from scipy.spatial.distance import cdist
def pairwise_distance_scipy(points):
distances = cdist(points, points, metric='euclidean')
return distances
# 使用例
points = np.array([[1, 2], [3, 4], [5, 6]])
distances = pairwise_distance_scipy(points)
print(distances)
- scikit-learnを使用した方法:
scikit-learnは機械学習のための優れたライブラリであり、距離計算にも便利です。以下は、scikit-learnの
pairwise_distances
関数を使用してユークリッド距離を計算する例です。
from sklearn.metrics import pairwise_distances
def pairwise_distance_sklearn(points):
distances = pairwise_distances(points, metric='euclidean')
return distances
# 使用例
points = np.array([[1, 2], [3, 4], [5, 6]])
distances = pairwise_distance_sklearn(points)
print(distances)
これらはPythonでのペアワイズ距離計算のいくつかの効率的な方法です。データのサイズや特定の要件に応じて、適切な方法を選択できます。詳細な説明や他の距離尺度については、各ライブラリの公式ドキュメントを参照してください。