def sum_any(data, axis=0):
    yshape = list(data.shape)
del yshape[axis]
y = np.zeros(yshape, data.dtype)
it = np.nditer(y, flags=['multi_index'])
while not it.finished:
    xindex = list(it.multi_index)
xindex.insert(axis, slice(None))
y[it.multi_index] = data[xindex].sum()
it.iternext()
return y
Как сделать уменьшение с помощью numpy.nditer по первой оси