Он не вычисляет заранее расстояние между центрами, он предварительно вычисляет расстояние между точкой, скажем, X, и всеми другими точками в системе и сохраняет их для дальнейшего использования.
Проверьте эту строку 619 в kmeans , которая вызывает _labels_inertia_precompute_dense
, что, в свою очередь, вызывает pairwise_distances_argmin_min в строке 562 .
Документация pairwise_distances_argmin_min гласит, что
Вычислить минимальные расстояния между одной точкой и набором точек.
Эта функция вычисляет для каждой строки в X индекс строки Y
который находится ближе всего (согласно указанному расстоянию). Минимальный
расстояния также возвращаются.
Так что ему не нужно знать центры, это просто используется для предварительного вычисления расстояний между всеми возможными парами точек друг с другом.