a = np.array([[1, 2], [3, 0]])
b = np.array([[1, 2], [0, 3]])
Отфильтровывает нулевые значения b
np.nonzero
возвращает индексы, для фильтрации нулевых значений используются многомерные индексные массивы .
In [144]: b.nonzero()
Out[144]: (array([0, 0, 1], dtype=int64), array([0, 1, 1], dtype=int64))
In [145]: a[b.nonzero()]
Out[145]: array([1, 2, 0])
In [146]: b[b.nonzero()]
Out[146]: array([1, 2, 3])
In [147]: c = a[b.nonzero()] != b[b.nonzero()]
In [148]: c.sum()
Out[148]: 1
При этом используется логическое индексирование для фильтрации нулевых значений.
In [149]: b != 0
Out[149]:
array([[ True, True],
[False, True]], dtype=bool)
In [150]: a[b != 0]
Out[150]: array([1, 2, 0])
In [151]: b[b != 0]
Out[151]: array([1, 2, 3])
In [152]: c = a[b != 0] != b[b != 0]
In [153]: c.sum()
Out[153]: 1