как получить индекс numpy.random.choice? - питон

Вы можете использовать пакет openopt и его метод NLP. Он имеет множество алгоритмов динамического программирования для решения нелинейных алгебраических уравнений, состоящих из: goldenSection, scipy_fminbound, scipy_bfgs, scipy_cg, scipy_ncg, amsg2p, scipy_lbfgsb, scipy_tnc, bobyqa, ralg, ipopt, scipy_slsqp, scipy_cobyla, lincher, algencan, из которых вы можете выбрать. Некоторые из последних алгоритмов могут решить проблему ограниченного нелинейного программирования. Итак, вы можете ввести свою систему уравнений в openopt.NLP () с помощью такой функции:

lambda x: x[0] + x[1]**2 - 4, np.exp(x[0]) + x[0]*x[1]

16
задан HappyPy 13 September 2013 в 20:05
поделиться

1 ответ

Возможно, поздно, но это ценность для упоминания этого решения, потому что я думаю самый простой способ сделать так:

a = [1,4,1,3,3,2,1,4]
n = len(a)
idx = np.random.choice(list(range(n)), p=np.ones(n)/n)

Это означает, что Вы выбор из индексов однородно. В более общем случае можно сделать взвешенную выборку (и возвратить индекс), таким образом:

probs = [.3, .4, .2, 0, .1]
n = len(a)
idx = np.random.choice(list(range(n)), p=probs)

, Если бы Вы пытаетесь сделать так для так много раз (например, 1e5), гистограмма выбранных индексов была бы похожа [0.30126 0.39817 0.19986 0. 0.10071] в этом случае, который корректен.

Так или иначе, необходимо выбрать из индексов и использовать значения (если Вам нужно) как их вероятности.

0
ответ дан 30 November 2019 в 20:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: