我是python新手。下面的代码基于来自csv数据集的输入为newprobValues中的每个键创建一系列数值。我希望能够通过每个arange()函数,通过为每个新的数值指定另一个值(即0、1、2),来识别哪些值是通过每个arange()函数创建的
现在,所有新的数值都聚合到一个列表中,我从列表中随机抽取数字,并在使用后删除它们(在一个心理变态任务中)。任务中的数据被输出到另一个csv文件中,我希望在新数值列旁边有一列0s、1s和2s,这样我就可以解析它们进行分析。在
例如: newprobValues1=np.arange公司(low1_p,high1_p,step=SV)应该有第二个值1与之关联,这样我就可以将这些值输出到csv文件中的单独列中。在
代码:
newprobValues = {.17:[],
.28:[],
.54:[],
.84:[],
.96:[],
.99:[],}
for npv in newprobValues:
mu = probs.ix[(probs['DDPD']==npv),['Value']]
SV = hyperlaw(((1-npv)/npv), k_prob) #yields subjective value of one dollar at given delay
mu = float(mu['Value'])
generating_values_prob[npv] = {'mu':mu, 'SV':SV}
if mu >= 25.50:
#set desired ran
low1_p, high1_p = float(mu-(4*SV)), float(mu-.01) # -.01 is hack to prevent arange() from rounding uneven ceil() up to a fifth iteration
low2_p, high2_p = float(mu+SV), float(mu+(5*SV)-.01)
low3_p, high3_p = 20.5, 80
newprobValues1 = np.arange(low1_p, high1_p, step = SV) #generate hard values below indiff point
newprobValues2 = np.arange(low2_p, high2_p, step = SV) #generate hard values above indiff point
newprobValues3 = np.arange(low3_p, high3_p, step = 6.612)**
newprobValues[npv] = np.concatenate([newprobValues1, newprobValues2, newprobValues3])
newprobValues[npv] = np.insert(newprobValues[npv], 0, mu)
newprobValues[npv] = newprobValues[npv].tolist()
我试过密码:
^{pr2}$但是我得到了一个字典,里面有0,当我真的需要为每个数字分配0时——这样当我连接无序数组时,我仍然可以识别生成每个值的arange()
函数
我不确定这是否是您想要的,但是内置的
enumerate()
函数将生成值对,每对的第一个成员是一个索引。因此,例如,enumerate([12, 35, 17)
将生成序列(0, 12), (1, 35), (2, 17)
。在换成
for
循环来读取是否有效我想知道?在
我看到您对新计算的
ndarray
所做的最后一件事是 使用它的tolist()
方法。在如果你想要的是一张单子,你不必费尽周折
^{pr2}$numpy
。。。更自然的方法是稍后,当您想使用序列号
i
时,可以这样做或者,使用列表解包
相关问题 更多 >
编程相关推荐