2017-04-18 2 views
0

Ich habe ein Array img mit Form ist 64x128x512x3, die von drei Bildern 64x128x512 concated ist. Ich möchte den Mittelwert jedes Bildes einzeln berechnen, gegeben durch das Array img. Daher führte ich den Code als Faltenbalg:Wie berechne ich den Mittelwert eines 4D Arrays?

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

Ist es korrekt? Mein erwartetes Ergebnis ist, dass img_means[0,:,:,:] Mittel des ersten Bildes ist, img_means[1,:,:,:] ist das Mittel des zweiten Bildes, img_means[2,:,:,:] des dritten Bildes.

+1

Dieser Code berechnet 'img_means [i] = img [:,:,:, i] .mean() ' – Eric

Antwort

1

Ja, es ist korrekt, aber beachte, dass img_means nur ein Array von drei Zahlen ist (jede ist der Mittelwert der entsprechenden Zahl).

0

Ihr Code funktioniert nicht in Python 3.x es wie folgt tun: zuerst die Daten

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

erzeugen Und das ist, was Sie wollen:

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

Für mich funktionierte es auf Python 3 (Python 3.5.2). Speziell mit dem folgenden Code: img = np.random.randint (5, Größe = (64,128,512,3)) b = np.mean (img, (0,1,2)) –

Verwandte Themen