我正在尝试平均二维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.mean
和np.average
,但结果与空数组相同。ws1
, ws1_I8
, ws1_I10
的形状都是(18, 75)
,我希望得到(18, 75)
形状的结果数组。
如果ws1
, ws1_I8
和ws1_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
这听起来很适合你:
average_list = [ws1, ws1_I8, ws1_I10]
WSAV = sum(average_list) / len(average_list)
假设您想要的是(ws1+ws1_I8+ws1_I10)/3
.