在python中迭代一维数组的每个元素

我从一个nc文件中读取了数组形式的变量。现在我已经用所有这些变量的第一个元素进行了计算并创建了一个新变量。我想为初始数组中的每个元素重复相同的一组计算,而不更改我考虑单点的计算代码。


我已经尝试过zip,nditer但在这两种情况下,变量中的 if 语句a都将更改为.any()or .all()。我也不能这样做,因为我希望 if 语句只考虑一个点而不是整个数组。


T = AD06_ALL_OMNI.variables['A_TEMP'][:][0]  

REL_HUM = AD06_ALL_OMNI.variables['HUMIDITY'][:][0]

AIR_PRES = AD06_ALL_OMNI.variables['A_PRES'][:][0]

a = T-29.65

#masking of values so that division by 0 is avoided

if a!=0.0:

    exponent1 = math.exp(17.67*T-0.16/a)   

q = REL_HUM*exponent1/(26.3*AIR_PRES)  

deltaq = 0.98*qs-q

print (deltaq)

我需要a对每个点进行计算,以便从 T,和对应的点deltaq中找出相同的点。所有变量的大小相同(一维数组)。请帮忙!REL_HUMAIR_PRES


临摹微笑
浏览 132回答 1
1回答

波斯汪

for var in range(0, length(AD06_ALL_OMNI.variables['A_TEMP'][:])-1):    T = AD06_ALL_OMNI.variables['A_TEMP'][:][var]      REL_HUM = AD06_ALL_OMNI.variables['HUMIDITY'][:][var]    AIR_PRES = AD06_ALL_OMNI.variables['A_PRES'][:][var]    a = T-29.65    #masking of values so that division by 0 is avoided    count = 0    for element in a:        if element!=0.0:            exponent1 = math.exp(17.67*T[count] -0.16/element)           q = REL_HUM[count]*exponent1/(26.3*AIR_PRES[count] )          deltaq = 0.98*qs-q        print (deltaq)        count = count + 1假设所有数组的长度相同(如果没有相等长度的气压、气温和湿度,这没有意义),您可以使用循环遍历 a 的所有值,检查每个值都为 0,并计算并打印每个点的 deltaq。我希望这有帮助。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python