在进行一些计算后,我有一个返回4个值的函数。 我输入5个参数。
我使用6个不同的输入参数运行上述函数 6次以获得6个不同的输出。
def id_match(zcosmo,zphot,zmin,zmax,mlim):
data_zcosmo_lastz = zcosmo[(data_m200>mlim)*(zcosmo>zmin)*(zcosmo<zmax)]
data_zphot_lastz = zphot[(data_m200>mlim)*(zphot>zmin)*(zphot<zmax)]
halo_id_zcosmo = data_halo_id[(data_m200>mlim)*(zcosmo>zmin)*(zcosmo<zmax)]
halo_id_zphot = data_halo_id[(data_m200>mlim)*(zphot>zmin)*(zphot<zmax)]
idrep_zcosmo = data_idrep[(data_m200>mlim)*(zcosmo>zmin)*(zcosmo<zmax)]
idrep_zphot = data_idrep[(data_m200>mlim)*(zphot>zmin)*(zphot<zmax)]
file2freq1 = Counter(zip(halo_id_zcosmo,idrep_zcosmo))
file2freq2 = Counter(zip(halo_id_zphot,idrep_zphot))
set_a = len(set(file2freq1) & set(file2freq2)) # this has the number of common objects
difference = 100.0 - (set_a*100.0)/len(data_zcosmo_lastz)
print difference
return (len(data_zcosmo_lastz),len(data_zphot_lastz),set_a,difference)
zmin_limits = [0.1,0.4,0.7,1.0,1.3,1.6]
zmax_limits = [0.4,0.7,1.0,1.3,1.6,2.1]
mlim_limits = [5e13,5e13,5e13,5e13,5e13,5e13]
for a,b,c in zip(zmin_limits,zmax_limits,mlim_limits):
id_match(data_zcosmo_lastz,data_zphot_lastz,a,b,c)
以上代码为6个不同的输入参数打印difference
。
但我想知道如何将函数的输出保存到数组中,以便将其保存为csv file
???
我知道这样做
a,b,c,d = id_match(input params)
会让a,b,c,d
拥有id_match
的一个输出。但我想将所有返回值存储在单个数组中。
答案 0 :(得分:1)
http://localhost:8080/data/process
已经返回一个元组。您不需要将其转换为任何内容,因为id_match()
可以处理元组。您需要做的就是为csv.DictWriter.writerow()
返回的内容分配一个变量并写入id_match()
文件:
csv