Выберите случайный элемент в матрице numpy, возвращающей его индекс

У меня есть матрица shape=(3,3), а строки представляют распределения вероятностей. Вот пример:

distribution_probablities=np.array([[1/3,2/3,0], 
                               [0.5,0.2,0.3],
                               [1,0,0]])

Я хочу получить вектор длиной 3, и каждое значение представляет собой индекс выбранной вероятности. Возможный результирующий вектор таков: result=[1,0,0]
В первой строке у второго элемента больше шансов быть выбранным, во второй - то же самое для второго элемента и так далее. Другой возможный результат: result=[0,2,0] . Можно ли сделать это без цикла for по строкам?


person Francesco De Santis    schedule 12.05.2021    source источник
comment
Я не совсем понимаю. Означает ли 1,0,0 вероятность (строка 2) 1, затем 0 (строка 1), затем 0 (строка 1)?   -  person user_na    schedule 12.05.2021
comment
каждая строка представляет собой вероятностное распределение. Если вы рассматриваете матрицу, которая имеет только одну строку [0,5,0,3,0,2], я могу получить x=0,x=1,x=2, но вероятность получения индекса пропорциональна значению, которое он содержит.   -  person Francesco De Santis    schedule 12.05.2021
comment
@MustafaAydın хорошее решение   -  person user_na    schedule 12.05.2021
comment
да хороший вариант, спасибо. Но я искал решение без циклов. Например, используя argwhere или что-то в этом роде.   -  person Francesco De Santis    schedule 12.05.2021
comment
да спасибо!!   -  person Francesco De Santis    schedule 12.05.2021