我有一个4-D电导率阵列,我需要根据它计算方差。为此,我沿第一个(时间)轴计算平均值,最大值和最小值。但是,所有三个返回相同的值。
我已经尝试过使用for循环,但是要花很长时间。
我读取输入文件并使用来计算参数
cond = data.variables['sigma']
condmean = np.nanmean(cond[:][0][:][:], axis=0)
condmax = np.nanmax(cond[:][0][:][:], axis=0)
condmin = np.nanmin(cond[:][0][:][:], axis=0)
但是,输出具有相同的值,因此可变性为零:
print('average conductivity =', condmean)
average conductivity = [[ nan nan nan ... nan nan nan]
[ nan nan nan ... nan nan nan]
[2.50776908 2.50829063 2.50866258 ... 2.50802142 2.50724329 2.5075425 ]
...
[ nan nan nan ... nan nan nan]
[ nan nan nan ... nan nan nan]
[ nan nan nan ... nan nan nan]]
print('maximum conductivity =', condmax)
maximum conductivity = [[ nan nan nan ... nan nan nan]
[ nan nan nan ... nan nan nan]
[2.50776908 2.50829063 2.50866258 ... 2.50802142 2.50724329 2.5075425 ]
...
[ nan nan nan ... nan nan nan]
[ nan nan nan ... nan nan nan]
[ nan nan nan ... nan nan nan]]
print('minimum conductivity =', condmin)
minimum conductivity = [[ nan nan nan ... nan nan nan]
[ nan nan nan ... nan nan nan]
[2.50776908 2.50829063 2.50866258 ... 2.50802142 2.50724329 2.5075425 ]
...
[ nan nan nan ... nan nan nan]
[ nan nan nan ... nan nan nan]
[ nan nan nan ... nan nan nan]]
print('variability =', condvar)
variability = [[-- -- -- ... -- -- --]
[-- -- -- ... -- -- --]
[0.0 0.0 0.0 ... 0.0 0.0 0.0]
...
[-- -- -- ... -- -- --]
[-- -- -- ... -- -- --]
[-- -- -- ... -- -- --]]
我还注意到第一个数组(cond [0] [0] [:] [:])与其他参数具有相同的值,因此我认为代码未按预期方式计算均值,而只是采用此值:
cond[0] is: [[ nan nan nan ... nan nan nan]
[ nan nan nan ... nan nan nan]
[2.50776908 2.50829063 2.50866258 ... 2.50802142 2.50724329 2.5075425 ]
...
[ nan nan nan ... nan nan nan]
[ nan nan nan ... nan nan nan]
[ nan nan nan ... nan nan nan]]