Как вероятностно заполнить список в python?

Я хочу использовать базовый цикл for для заполнения списка значений в Python, но мне бы хотелось, чтобы значения вычислялись вероятностно таким образом, чтобы p% времени вычислялось в (игрушечном) уравнении 1 и 100-p. % времени значения рассчитываются в уравнении 2.

Вот что у меня так далеко:

    # generate list of random probabilities 
    p_list = np.random.uniform(low=0.0, high=1.0, size=(500,))
    my_list = []

    # loop through but where to put 'p'? append() should probably only appear once
    for p in p_list:
        calc1 = x*y # equation 1
        calc2 = (x-y) # equation 2
        my_list.append(calc1)
        my_list.append(calc2)
4 голоса | спросил MeC 30 Jpm1000000pmWed, 30 Jan 2019 23:53:03 +030019 2019, 23:53:03

4 ответа


0
Вы уже сгенерировали список вероятностей - ---- +: = 0 =: + ---- -, которые соответствуют каждому значению в ---- +: = 1 =: + ----, который вы хотитегенерировать.Pythonic способ сделать это через троичный оператор и понимание списка:Если бы мы расширили это в правильный цикл ---- +: = 3 =: + ---- :Если бы мы хотели быть еще более питоническими в отношении ---- +: = 5 =: + ---- и ---- +: = 6 =: + ---- , мы могли бы превратить их в лямбды:или, в зависимости от того, как ---- +: = 8 =: + ---- и ---- +: = 9 =: + ---- изменяются для вашей функции (при условии, что они не статичны), выможет даже сделать понимание в два этапа:
ответил Green Cloak Guy 31 Jam1000000amThu, 31 Jan 2019 00:01:19 +030019 2019, 00:01:19
0
Я использовал минимальные изменения в исходном коде и понятный синтаксис:
ответил Greg Dubicki 31 Jam1000000amThu, 31 Jan 2019 00:03:51 +030019 2019, 00:03:51
0
Другие ответы, кажется, предполагают, что вы хотите сохранить рассчитанные шансы.Если все, что вам нужно, это список результатов, для которых уравнение 1 использовалось в р% времени, а уравнение 2 в 100% р времени, это все, что вам нужно:
ответил Grismar 31 Jam1000000amThu, 31 Jan 2019 03:30:34 +030019 2019, 03:30:34
0
Если вы можете использовать numpy, стоит попробовать метод выбора.https://docs.scipy.org/doc/numpy-1.14.1/reference/generated/numpy.random.choice.html
ответил vRathee 31 Jpm1000000pmThu, 31 Jan 2019 20:35:23 +030019 2019, 20:35:23

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

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132