num_zeros = len(X) - np.sum(nonzeros)
if num_zeros == 0:
    y1 = T
elif num_zeros == len(X):
    return y
else:
    R = (T - y) * Dinvs
r = np.linalg.norm(R)
rinv = 0 if r == 0 else num_zeros / r
y1 = max(0, 1 - rinv) * T + min(1, rinv) * y
if euclidean(y, y1) < eps:
    return y1
y = y1
Геометрическая медиана многомерных точек