Python / NumPy中用于计算均值的元素排列
发布于 2021-01-29 15:05:19
我有一维列表如下:
data = [1,5,9,13,
2,6,10,14,
3,7,11,15,
4,8,12,16]
我要列出以下元组,并分别计算每个元组的平均值。
[(1,5,2,6), (3,7,4,8), (9,13,10,14), (11,15,12,16)]
预期结果应为:
[3.5, 5.5, 11.5, 13.5]
这样做更简单的方法是什么?
关注者
0
被浏览
88
1 个回答
-
将数据放入形状为(2,2,2,2)的4-d numpy数组中,然后取轴1和3上该数组的平均值:
In [25]: data Out[25]: [1, 5, 9, 13, 2, 6, 10, 14, 3, 7, 11, 15, 4, 8, 12, 16] In [26]: a = np.array(data).reshape(2, 2, 2, 2) In [27]: a Out[27]: array([[[[ 1, 5], [ 9, 13]], [[ 2, 6], [10, 14]]], [[[ 3, 7], [11, 15]], [[ 4, 8], [12, 16]]]]) In [28]: a.mean(axis=(1, 3)) Out[28]: array([[ 3.5, 11.5], [ 5.5, 13.5]])
ravel()
如果需要最终结果作为一维数组,则可以使用该方法:In [31]: a.mean(axis=(1, 3)).ravel() Out[31]: array([ 3.5, 11.5, 5.5, 13.5])
请参阅如何对numpy数组的2x2子数组的平均值进行矢量化处理?对于类似的问题。