Numpy: эффективный способ назначения строк матрицы индексированной строке в другой матрице - PullRequest
0 голосов
/ 07 ноября 2018

В следующем коде:

num_centroids = 8

vectors = # ndarray of shape (10000, 128)
centroids = np.random.uniform(-1., 1., (num_centroids   , vectors.shape[1]))

for _ in range(max_iterations):
    distances = sklearn.metrics.pairwise.euclidean_distances(vectors, centroids)

    # can this (the centroid update) be done any cleaner?
    for c in range(num_centroids):
        centroids[c] = np.mean(vectors[np.argmax(distances, axis=1) == c], axis=0)

Существует ли более эффективный или более чистый способ (кроме цикла for) присваивать каждому centroid (строке в матрице centroids) среднее значение, рассчитанное по индексированной матрице vector, учитывая, что Индекс centroid (c) и индексирование вектора с argmax совпадают?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...