我有以下名为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)
感谢您的帮助
答案 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