使用numpy.mean或numpy.average平均2-D numpy.array

时间:2015-07-25 02:01:17

标签: python numpy multidimensional-array average

我试图平均二维numpy数组。所以,我使用numpy.mean,但结果是空数组。

import numpy as np
ws1 = np.array(ws1)
ws1_I8 = np.array(ws1_I8) 
ws1_I10 = np.array(ws1_I10)
WSAV = np.mean([ws1,ws1_I8,ws1_I10])
print WSAV

我同时使用了np.meannp.average,但结果与空数组相同。 ws1ws1_I8ws1_I10中的每一个都具有(18, 75)的形状,我希望结果数组为(18, 75)形状。

任何想法或帮助都会非常感激。

2 个答案:

答案 0 :(得分:3)

如果ws1ws1_I8ws1_I10都具有形状(18,75),则np.mean([ws1, ws1_I8, ws1_I10])应返回所有数组中所有值的平均值。 (我不确定你的意思"结果与空数组相同"。)np.mean会将[ws1, ws1_I8, ws1_I10]转换为具有形状的三维数组( 3,18,75)。要使np.mean仅沿第一个轴平均,请使用参数axis=0

WSAV = np.mean([ws1, ws1_I8, ws1_I10], axis=0)

或者,您可以简单地写一下:

WSAV = (ws1 + ws1_I8 + ws1_I10) / 3.0

答案 1 :(得分:1)

听起来这会为你做到:

average_list = [ws1, ws1_I8, ws1_I10]
WSAV = sum(average_list) / len(average_list)

假设你想要的是(ws1+ws1_I8+ws1_I10)/3