方法1: 我们可以将它们广播为二进制位并计算不同位的数量,如下所示-
def hamming_distance(a, b): r = (1 << np.arange(8))[:,None] return np.count_nonzero( (a & r) != (b & r) )
样品运行-
In [144]: a = [127,255] ...: b = [127,240] ...:In [145]: hamming_distance(a, b)Out[145]: 4
方法2: 使用
bitwise-xor*** 作,我们可以找出不同的二进制位的数量之间
a和
b-
def hamming_distance_v2(a, b): r = (1 << np.arange(8))[:,None] return np.count_nonzero((np.bitwise_xor(a,b) & r) != 0)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)