我正在尝试在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个项目中重复,检查与它们最右边的邻居是否相等并消除零。对于range(row-1)中的项,这将很容易,但是我不确定这是否在Numpy中合法,或者它是否具有不同的语法,并且是否昂贵
np.count_nonzero中是否存在某种有效的Numpy方法,不包括零对?
谢谢!