我有一个a
像这样的数组:
a = [[40, 10], [50, 11]]
我需要分别计算每个维度的平均值,结果应为:
[45, 10.5]
45
作为平均值的a[*][0]
和10.5
平均的a[*][1]
。
在不使用循环的情况下解决此问题的最优雅的方法是什么?
Answers:
a.mean()
有一个axis
参数:
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
axis=0
代替axis=1
axis=0
在下一行。我编辑以显示更多信息,也许刷新?
mean = np.mean(a, axis=(0,2,3)) mean?
知道输入张量(a)的形状(批,通道,宽度,高度)怎么办?
In [n]:
意思 这是代码的一部分吗?