كيفية حساب مسافة هامينغ في بايثون (مع أمثلة)


إن مسافة هامينغ بين متجهين هي ببساطة مجموع العناصر المتناظرة التي تختلف بين المتجهات.

على سبيل المثال، لنفترض أن لدينا المتجهين التاليين:

 x = [1, 2, 3, 4]

y = [1, 2, 5, 7]

ستكون مسافة هامينغ بين المتجهين 2 ، لأن هذا هو العدد الإجمالي للعناصر المطابقة التي لها قيم مختلفة.

لحساب مسافة Hamming بين مصفوفتين في بايثون، يمكننا استخدام دالة hamming() من مكتبة scipy.spatial.distance، والتي تستخدم الصيغة التالية:

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

لاحظ أن هذه الدالة تُرجع النسبة المئوية للعناصر المطابقة التي تختلف بين الصفيفين.

لذا، للحصول على مسافة هامينج يمكننا ببساطة الضرب في طول أحد الجداول:

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

يقدم هذا البرنامج التعليمي عدة أمثلة للاستخدام العملي لهذه الوظيفة.

مثال 1: مسافة هامينغ بين المصفوفات الثنائية

يوضح الكود التالي كيفية حساب مسافة هامينج بين مصفوفتين تحتوي كل منهما على قيمتين محتملتين فقط:

 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: المسافة المطرقة بين المصفوفات العددية

يوضح الكود التالي كيفية حساب مسافة هامينج بين مصفوفتين تحتوي كل منهما على عدة قيم رقمية:

 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

مسافة هامينج بين الطاولتين هي 3 .

مثال 3: مسافة المطرقة بين صفائف السلسلة

يوضح الكود التالي كيفية حساب مسافة هامينج بين مصفوفتين تحتوي كل منهما على عدة قيم أحرف:

 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

مسافة هامينج بين الطاولتين هي 1 .

مصادر إضافية

كيفية حساب المسافة الإقليدية في بايثون
كيفية حساب المسافة Mahalanobis في بايثون
كيفية حساب تشابه جاكارد في بايثون

Add a Comment

ایمئیل یایینلانمایاجاق ایسته‎نیله‎ن بوشلوقلار خاللانمیشدیر *