Снятие петель с NumPy - PullRequest
       7

Снятие петель с NumPy

0 голосов
/ 26 февраля 2019

Итак, идея в том, что я пытаюсь удалить цикл for в python с помощью Numpy

return np.array([points[closest==k].mean(axis=0) for k in range(k)])

Где points - это массив точек в моем случае 2d points.Ближайшим является массив меток, отслеживающий метки для каждой точки в точках.K - это просто число

Так что моя идея состоит в том, что если бы я создал массив, который был 3-мерным, который был разделен для каждого k, то я мог бы просто взять среднее значение этого массива, не делая цикл for.

Если у вас есть идея лучшей идеи, не стесняйтесь поделиться :)

1 Ответ

0 голосов
/ 26 февраля 2019

Вы можете использовать scipy.stats.binned_statistic:

import scipy.stats

# ...
    return scipy.stats.binned_statistic(closest, points.T, np.arange(k + 1)).statistic
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...