在第三维和第四维上计算4d阵列的平均值

时间:2018-04-22 17:07:42

标签: python arrays python-3.x numpy

我有以下名为my_data的4D numpy数组。

my_data=dim(8000,2350,143,20)
我想计算 表示第三维和第四维(143,20)。 让我们调用第三维和第四维一个子二维数组

3d_4d_array=dim(143,20) 

然后:

mean_3D_4d_array=np.mean(mean_3D_4d_array,axis=0)
mean_3D_4d_array.shape
(20,)

预期输出:

mean_data=dim(8000,2350,20)

我尝试过:

   my_data=np.mean(my_data,axis=2)
    my_data.shape
    (9360, 256, 20)

我的尝试是否正确? 我不确定它在第三维和第四维上计算axis=0以上的均值(143,20)

感谢您的帮助

1 个答案:

答案 0 :(得分:1)

关于如何验证您的操作是否返回您希望返回的操作的小示例:

a = np.arange(50)
a = np.reshape(a, newshape=(1,1,10,5))
print(a)
[[[[ 0  1  2  3  4]
[ 5  6  7  8  9]
[10 11 12 13 14]
[15 16 17 18 19]
[20 21 22 23 24]
[25 26 27 28 29]
[30 31 32 33 34]
[35 36 37 38 39]
[40 41 42 43 44]
[45 46 47 48 49]]]]

# Mean along axis 2
b = np.mean(a, axis=2)
print(b.shape)
print(b[0,0])
(1, 1, 5)
[22.5 23.5 24.5 25.5 26.5]

# Mean along axis 3
b = np.mean(a, axis=3)
print(b.shape)
print(b[0,0])
(1, 1, 10)
[ 2.  7. 12. 17. 22. 27. 32. 37. 42. 47.]

如果你想要沿着轴3 4的平均值(例如最后2个轴),你可以迭代地应用平均运算:

b = np.mean(a, axis=2)
b = np.mean(b, axis=2)
print(b.shape)
print(b[0,0])
(1, 1)
24.5