数组各项上的Numpy均值和std

数组各项上的Numpy均值和std,numpy,Numpy,我有一个二维数组的列表(相同的形状),我想在一个与输入形状相同的结果数组中得到所有项的平均值和偏差。我很难从医生那里了解这是否可行。我对axis和keepdims参数的所有尝试都会产生不同形状的结果 例如,我希望:mean([x,x])等于x,std([x,x])的零形状像x 在不重塑阵列的情况下,这是否可行?如果没有,如何进行整形 例如: >> x= np.array([[1,2],[3,4]]) >>> y= np.array([[2,3],[4,5]]) &g

我有一个二维数组的列表(相同的形状),我想在一个与输入形状相同的结果数组中得到所有项的平均值和偏差。我很难从医生那里了解这是否可行。我对axis和keepdims参数的所有尝试都会产生不同形状的结果

例如,我希望:mean([x,x])等于x,std([x,x])的零形状像x

在不重塑阵列的情况下,这是否可行?如果没有,如何进行整形

例如:

>> x= np.array([[1,2],[3,4]])
>>> y= np.array([[2,3],[4,5]])
>>> np.mean([x,y])
3.0
我想改为
[[1.5,2.5],[3.5,4.5]

,您可以将数组列表传递给
np.mean
,并指定
axis=0
对列表中每个数组的相应值进行平均:

In [13]: np.mean([x,y], axis=0)
Out[13]: 
array([[ 1.5,  2.5],
       [ 3.5,  4.5]])
这适用于任意长度的列表。仅对于两个阵列:


或者简单的
np.mean([x,y],axis=0)
或者
np.std([x,y],axis=0)
似乎也能工作。啊,是的,因为
np.asarray
在其输入端被调用。谢谢你的更正,@Divakar。我几乎可以肯定我试过axis=0,但我想没有。谢谢列表的长度确实是任意的,所以我将使用第一个(而堆栈似乎在我的numpy版本中不可用)。
In [20]: %timeit (x+y)/2.0
100000 loops, best of 3: 1.96 µs per loop

In [21]: %timeit np.mean([x,y], axis=0)
10000 loops, best of 3: 21.6 µs per loop