我有两个包含二进制值的相同长度的numpy数组importnumpyasnpa=np.array([1,1,1,1,1,1,0,1,1,0,1,1,1,0,0,0,0,1,1,1,0])b=np.array([1,1,1,1,0,1,1,0,1,0,1,0,1,0,1,0,0,1,1,0,1])我想尽快计算出它们之间的汉明距离,因为我要进行数百万次这样的距离计算。这是一个简单但缓慢的选项(取自维基百科):%timeitsum(ch1!=ch2forch1,ch2inzip(a,b))10000loops,bestof3:79usperloop我想出了更快的选项,灵感来自这里关于堆栈溢出
Python学习系列文章:👉目录👈文章目录一、概述二、计算公式①二维平面上的切比雪夫距离②n维空间上的切比雪夫距离一、概述国际象棋的棋盘上,一场大战正在进行,“车”横冲直撞,干掉敌人;“皇后”肆意横行,大开杀戒;而国王,只能在自己周围的“横”、“竖”、“斜”几个方块里移动。切比雪夫距离(ChebyshevDistance)研究的就是关于“国王”移动的问题,国王从一个格子(x1,y1)走到另一个格子(x2,y2)最少需要的步数就是切比雪夫距离。二、计算公式①二维平面上的切比雪夫距离二维平面上的切比雪夫距离就是国王移动问题,比如这里“国王”从(f,3)移动到(c,5)。最短的距离肯定要斜着走的距离