Функция суммирования
Numpy возвращает правильный ожидаемый результат, но сумма по умолчанию python не равна (по крайней мере, для типа данных uint8, что делает его еще более запутанным):
In [1]: import numpy as np
In [2]: x = np.random.randint(2, size = (1000,100))
In [3]: x
Out[3]:
array([[1, 1, 0, ..., 0, 1, 1],
[1, 1, 1, ..., 0, 0, 0],
[1, 1, 0, ..., 1, 0, 1],
...,
[1, 0, 0, ..., 1, 0, 1],
[0, 0, 1, ..., 0, 1, 1],
[1, 1, 0, ..., 1, 1, 1]])
In [4]: np.sum(x)
Out[4]: 50318
In [5]: sum(sum(x))
Out[5]: 50318
In [6]: x = x.astype('uint8')
In [7]: np.sum(x)
Out[7]: 50318
In [8]: sum(sum(x))
Out[8]: 16014