Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 计算二维阵列中尺寸的平均值_Python_Arrays_Multidimensional Array_Numpy_Mean - Fatal编程技术网

Python 计算二维阵列中尺寸的平均值

Python 计算二维阵列中尺寸的平均值,python,arrays,multidimensional-array,numpy,mean,Python,Arrays,Multidimensional Array,Numpy,Mean,我有一个数组a如下: a = [[40, 10], [50, 11]] 我需要分别计算每个维度的平均值,结果如下: [45, 10.5] 45是a[*][0]的平均值,10.5是a[*][1]的平均值 在不使用循环的情况下,解决这个问题最优雅的方法是什么?a.mean()采用轴参数: In [1]: import numpy as np In [2]: a = np.array([[40, 10], [50, 11]]) In [3]: a.mean(axis=1) # to t

我有一个数组
a
如下:

a = [[40, 10], [50, 11]]
我需要分别计算每个维度的平均值,结果如下:

[45, 10.5]
45
a[*][0]
的平均值,
10.5
a[*][1]
的平均值

在不使用循环的情况下,解决这个问题最优雅的方法是什么?

a.mean()
采用
参数:

In [1]: import numpy as np

In [2]: a = np.array([[40, 10], [50, 11]])

In [3]: a.mean(axis=1)     # to take the mean of each row
Out[3]: array([ 25. ,  30.5])

In [4]: a.mean(axis=0)     # to take the mean of each col
Out[4]: array([ 45. ,  10.5])
或者,作为独立功能:

In [5]: np.mean(a, axis=1)
Out[5]: array([ 25. ,  30.5])
切片不起作用的原因是,这是切片的语法:

In [6]: a[:,0].mean() # first column
Out[6]: 45.0

In [7]: a[:,1].mean() # second column
Out[7]: 10.5
如果你经常这样做,这是一条路要走

如果由于某种原因您不能使用NumPy:

>>> map(lambda x:sum(x)/float(len(x)), zip(*a))
[45.0, 10.5]

以下是一个非numpy解决方案:

>>> a = [[40, 10], [50, 11]]
>>> [float(sum(l))/len(l) for l in zip(*a)]
[45.0, 10.5]

谢谢你的快速回复。[n]:中的
是什么意思?这是代码的一部分吗?我正在使用numpy,所以第2行和第3行工作得很好,但是下一行是使用
axis=0
而不是
axis=1
@otmezger
axis=0
。我编辑以显示更多信息,或者刷新?@otmezger不客气。请注意,许多numpy数组方法都采用这样的轴参数。@askewchan:mean=np.mean(a,axis=(0,2,3))是什么意思知道输入张量(a)具有形状(批次、通道、宽度、高度)?