Python 如何在Numpy数组中指定迭代范围

Python 如何在Numpy数组中指定迭代范围,python,numpy,loops,Python,Numpy,Loops,我尝试在Numpy 2D数组中进行一个非常简单的迭代,在这个数组中,我按行比较相邻元素,然后按列比较是否相等。这工作正常,如下所示: for row in grid: rowScore = np.count_nonzero(np.diff(row) == 0) sameScore += rowScore * .75 + (rowScore - 1) * 1.25 for col in grid.T: colScore = np.count_nonzero(np.diff

我尝试在Numpy 2D数组中进行一个非常简单的迭代,在这个数组中,我按行比较相邻元素,然后按列比较是否相等。这工作正常,如下所示:

for row in grid:
    rowScore = np.count_nonzero(np.diff(row) == 0)
    sameScore += rowScore * .75 + (rowScore - 1) * 1.25
for col in grid.T: 
    colScore = np.count_nonzero(np.diff(col) == 0)
    sameScore += colScore * .75 + (colScore - 1) * 1.25
然而,我真正想做的是只计算相同的非零数字对,因为零代表空格,不在图中。作为Numpy的新手,我只能想到两种方法

  • 迭代每行的前n-1项,检查其与最右边的邻居是否相等,并消除零。对于范围(第1行)中的项,这将很容易,但我不确定这在Numpy中是否合法,或者它是否有不同的语法,以及它是否昂贵

  • 也许在np.count_nonzero中存在一些有效的Numpy方法,不包括零对

  • 谢谢

    也许可以帮你。