Python でハミング距離を計算する方法 (例付き)


2 つのベクトル間のハミング距離は、ベクトル間で異なる対応する要素の単純な合計です。

たとえば、次の 2 つのベクトルがあるとします。

 x = [1, 2, 3, 4]

y = [1, 2, 5, 7]

2 つのベクトル間のハミング距離は2になります。これは、異なる値を持つ一致する要素の総数であるためです。

Python で 2 つの配列間のハミング距離を計算するには、scipy.spatial. distance ライブラリのhamming()関数を使用できます。この関数は次の構文を使用します。

 scipy. spatial . distance . hamming (array1, array2)

この関数は、2 つの配列間で異なる一致する要素の割合を返すことに注意してください。

したがって、ハミング距離を取得するには、テーブルの 1 つの長さを単純に掛けることができます。

 scipy. spatial . distance . hamming (array1, array2) * len (array1)

このチュートリアルでは、この関数の実際の使用例をいくつか紹介します。

例 1: バイナリ配列間のハミング距離

次のコードは、それぞれが 2 つの可能な値のみを含む 2 つの配列間のハミング距離を計算する方法を示しています。

 from scipy. spatial . distance import hamming

#define arrays
x = [0, 1, 1, 1, 0, 1]
y = [0, 0, 1, 1, 0, 0]

#calculate Hamming distance between the two arrays
hamming(x, y) * len (x)

2.0

2 つのテーブル間のハミング距離は2です。

例 2: 数値配列間のハミング距離

次のコードは、それぞれ複数の数値を含む 2 つの配列間のハミング距離を計算する方法を示しています。

 from scipy. spatial . distance import hamming

#define arrays
x = [7, 12, 14, 19, 22]
y = [7, 12, 16, 26, 27]

#calculate Hamming distance between the two arrays
hamming(x, y) * len (x)

3.0

2 つのテーブル間のハミング距離は3です。

例 3: 文字列配列間のハミング距離

次のコードは、それぞれが複数の文字値を含む 2 つの配列間のハミング距離を計算する方法を示しています。

 from scipy. spatial . distance import hamming 

#define arrays
x = ['a', 'b', 'c', 'd']
y = ['a', 'b', 'c', 'r']

#calculate Hamming distance between the two arrays
hamming(x, y) * len (x)

1.0

2 つのテーブル間のハミング距離は1です。

追加リソース

Pythonでユークリッド距離を計算する方法
Python でマハラノビス距離を計算する方法
Python で Jaccard の類似性を計算する方法

コメントを追加する

メールアドレスが公開されることはありません。 が付いている欄は必須項目です