沿轴使用numpy nanmean / nanmax / nanmin的问题

时间:2019-04-13 14:20:00

标签: python python-3.x numpy nan

我有一个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]]

0 个答案:

没有答案