我有一系列温度('T')(0 - 100,包括0和100)和一系列湿度('RH')(0-1.00),因此每个列表中有101个值。
对于每个步骤到temp,我想对湿度范围进行计算,所以在T = 0时我计算列表中的每个RH并保存每个计算的结果(返回一个np.array),然后在T = 1时,再次对整个RH范围重复计算并保存每个结果等等......
我使用列表推导来迭代这两个列表:
ray2 = np.zeros(np.size(T)*np.size(RH))
ray18 = np.zeros(np.size(T)*np.size(RH))
for x,y in [(x,y) for x in T for y in RH]:
ray2, ray18 = rayleigh(T[x], RH[y], f, del2, del18)
我无法弄清楚如何将计数器合并到列表解析中以将所有10201结果保存为数组。
答案 0 :(得分:1)
如果您希望将ray2和ray18保留为一维数组,则可以使用此处显示的方法解决它们:Treating a 1D data structure as 2D grid。
代码如下:
编辑:澄清之后我调整了代码。
ray2 = np.zeros(np.size(T)*np.size(RH))
ray18 = np.zeros(np.size(T)*np.size(RH))
for i, t in enumerate(T):
for j, rh in enumerate(RH):
index = i*np.size(RH) + j
ray2[index], ray18[index] = rayleigh(t, rh, f, del2, del18)
但是,如果您对使用矩阵没问题,那么您应该使用@galaxyan发布的解决方案。
答案 1 :(得分:1)
我认为你需要用m零点矩阵创建n,然后将所有数据保存到它
ray2 = np.zeros((np.size(T), np.size(RH)))
ray18 = np.zeros((np.size(T), np.size(RH)))
for idx, t_ele in enumerate(T):
for idx_rh, rh_ele in enumerate(RH):
ray2[idx][idx_rh], ray18[idx][idx_rh] = rayleigh(t_ele , rh_ele , f, del2, del18)