2017-04-18 101 views
0

我有一個陣列img與形狀是64x128x512x3從三個圖像64x128x512 concatenated。我想分別計算每個圖像的均值,由數組img給出。因此,我執行的代碼爲波紋管:如何分別計算4D陣列的平均值?

import numpy as np 
img_means = np.mean(img, (0, 1, 2))) 

它是正確的嗎?我的預期成績是img_means[0,:,:,:]是第一張圖片的均值,img_means[1,:,:,:]是第二張圖片的均值,第三張圖片的是img_means[2,:,:,:]

+1

此代碼計算'img_means [i] = img [:,:,:,i] .mean()' – Eric

回答

1

是的,它是正確的,但請注意,img_means只是一個由三個數字組成的數組(每一個都是相應數字的平均值)。

0

你的代碼是不是在Python 3.x的工作 像這樣做:首先 生成數據

import numpy as np 
img=np.arange(64*128*512*3).reshape(64,128,512,3) 

這是你想要什麼:

img_means=[img[:,:,:,i].mean() for i in range(img.shape[3]) ] 
+0

對我來說,它工作在python 3(python 3.5.2)上。具體用以下代碼:img = np.random.randint(5,size =(64,128,512,3)) b = np.mean(img,(0,1,2)) –