2017-02-22 175 views
-2
  • 我有一系列表述为

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值。

  • 这些数值范围也随机numbers-

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的值集合中选择一个吗?

+3

看起来你要我们写一些代码给你。尽管许多用户愿意为遇险的编码人员编写代码,但他们通常只在海报已尝试自行解决问题时才提供帮助。展示这一努力的一个好方法是包含迄今为止编写的代码,示例输入(如果有的话),期望的输出以及实际获得的输出(输出,回溯等)。您提供的细节越多,您可能会收到的答案就越多。检查[FAQ](http://stackoverflow.com/tour)和[如何提问](http://stackoverflow.com/questions/how-to-ask)。 – TigerhawkT3

回答

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

如果我正确理解你的问题,然后一个简单的方法是

# 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) 
+0

.sum(axis = -1)做什么? – zerogravty

+0

既然'T'是一个矩形nx5数组,'np.exp(-t/T)'也是如此。 '.sum(axis = -1)'将元素和最后一个轴相加,即元素(0,0),(0,1),...(0,4)相加在一起,元素(1 ,0),(1,1),...(1,4)等,给出结果的n向量,每行一个。 –