Векторизация `numpy.random.choice` для заданного двумерного массива вероятностей вдоль оси

ethanabrooks спросил: 14 ноября 2017 в 07:15 в: python

Numpy имеет функцию random.choice, которая позволяет вам делать выборки из категориального распределения. Как бы вы повторили это по оси? Чтобы проиллюстрировать, что я имею в виду, вот мой текущий код:

categorical_distributions = np.array([
    [.1, .3, .6],
    [.2, .4, .4],
])
_, n = categorical_distributions.shape
np.array([np.random.choice(n, p=row)
          for row in categorical_distributions])

В идеале я хотел бы исключить цикл for.

0 ответов