У меня есть numpy матрица размером 12x12, содержащая вероятности. Цель состоит в том, чтобы взять случайную выборку с использованием этих вероятностей, а затем вернуть индекс выборки.
В настоящее время я использую следующий код, чтобы сделать это на основе np.random.choice
, где grid = матрица numpy:
rnd_choice = np.random.choice(grid.size, p=grid.ravel() / grid.ravel().sum())
sample_index = np.unravel_index(rnd_choice, grid.shape)
Проблема в скорости, так как мне приходится делать это несколько тысяч раз за симуляцию. Снейквиз выделил это как область для улучшения, поэтому мне было интересно, есть ли у кого-нибудь какие-либо идеи относительно того, как увеличить скорость этого? .