我试图平均二维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)
形状。
任何想法或帮助都会非常感激。
答案 0 :(得分:3)
如果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
答案 1 :(得分:1)
听起来这会为你做到:
average_list = [ws1, ws1_I8, ws1_I10]
WSAV = sum(average_list) / len(average_list)
假设你想要的是(ws1+ws1_I8+ws1_I10)/3
。