Поскольку вы не предоставили данные для работы, следующий код не проверен, но должен работать:
def computation(prob, syb, percentage_change_syb):
a = np.random.choice([0, 1], size=1000, p=[1 - prob, prob])
b = a * syb * (1 + percentage_change_syb / 100)
return b.T
final1 = computation(demo1['prob'].values, demo1['syb'].values, demo1['percentage_change_syb'].values)
Для получения дополнительной информации о выборе работы с массивами NumPy я рекомендую эту статью .