كيفية حساب مسافة هامينغ في بايثون (مع أمثلة)
إن مسافة هامينغ بين متجهين هي ببساطة مجموع العناصر المتناظرة التي تختلف بين المتجهات.
على سبيل المثال، لنفترض أن لدينا المتجهين التاليين:
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 في بايثون
كيفية حساب تشابه جاكارد في بايثون