def vectorized(prob_matrix, items):
    s = prob_matrix.cumsum(axis=0)
r = np.random.rand(prob_matrix.shape[1])
k = (s < r).sum(axis=0)
return items[k]
Быстрый случайный взвешенный выбор по всем строкам стохастической матрицы