Np.std上的三维数组



a = (np.arange(12)).reshape(2,2,3)

我只是想得到我的3D numpy数组中每列的标准偏差。当我对平均值这样做时,我得到了预期的结果-结果数组中的每个平均值都是浮点数。

a.mean(axis = 0).mean(axis = 0)

输出:

array([4.5, 5.5, 6.5])

然而,对于标准偏差:

a.std(axis = 0).std(axis = 0)

的回报:

array([0., 0., 0.])

验证np。STD在一列

上正常工作np.std(np.array([1,4,7,10]))

返回

3.3541019662496847

为什么列标准差返回0,0,0 ?

对于2D-numpy数组,查找每列的标准差和平均值可以这样做:

a = (np.arange(12)).reshape(4,3)
a_mean = a.T.mean(axis=1)
a_std = a.T.std(axis=1)

至于3d numpy数组,我不确定你的意思与列。因此,也许您正在寻找的解决方案是首先将数组重塑为2d-numpy数组,然后使用上面的代码。