y = a*np.exp(-t/T1) + a*np.exp(-t/T2) + a*np.exp(-t/T3) + a*np.exp(-t/T4) + a*np.exp(-t/T5)
我想要生成此系列n
次。
对于每次迭代,我希望从另一组值中选择T1-T5值。
这些值也是随机数的范围 -
value1 = np.random.uniform(1,5) value2 = np.random.uniform(6,10) value3 = np.random.uniform(11,15) value4 = np.random.uniform(16,20) value5 = np.random.uniform(21,25) value6 = np.random.uniform(26,30) value7 = np.random.uniform(31,35) value8 = np.random.uniform(36,40) value9 = np.random.uniform(41,45) value10 = np.random.uniform(46,50)
完成此任务的最简单方法是什么?我可以使用像np.random.choice
这样的东西从每个T的值集中选择吗?
答案 0 :(得分:1)
是的,np.random.choice
可以帮助您在值池中选择5个唯一候选者,然后您可以在池中为所选范围生成每个值。
import numpy as np
# you may want to set `replace` depending on your needs
candidates = np.random.choice(10, 5, replace=False)
t_values = [np.random.uniform(n*5+1, n*5+5) for n in candidates]
答案 1 :(得分:1)
如果我理解你的问题,那么一个简单的方法就是
# create the offsets for each iteration
offsets = 5 * np.random.randint(0, 10, (n, 1))
# create the actual samples and add the offsets
T = np.random.uniform(1, 5, (n, 5)) + offets
# compute result
Y = a * np.exp(-t / T).sum(axis=-1)