Moyennes dans tableaux

Résolu/Fermé
Akre66 Messages postés 55 Date d'inscription mercredi 14 mai 2014 Statut Membre Dernière intervention 4 octobre 2016 - Modifié par Akre66 le 23/09/2014 à 11:49
Akre66 Messages postés 55 Date d'inscription mercredi 14 mai 2014 Statut Membre Dernière intervention 4 octobre 2016 - 23 sept. 2014 à 12:05
Bonjour,
Je viens de commencer le Python depuis 3 jours (j'ai déjà pas mal coder en C/C++ et Perl).
Je dois faire un programme, qui va dans un fichier h5, recupére à un "sous fichier h5", des nombreuses valeurs.
Elle sort 4 tableaux de dimension 7*7*16 (disons [x,y,z])

De ce tableau, je dois faire la moyenne des chaque tableau en fonction de z...
Donc la moyenne de Tab1 pour z=0, z=1...

Puis comparer les moyennes, déduire la plus grande etc...


Alors mon soucis actuel est que j'arrive pas à faire la moyenne. J'ai réussi à récupérer les valeurs exactes. Mais quand il s'agit de faire la moyenne (alors qu'en soit la logique semble plus simple) j'arrive pas.
Elle me sort une valeur trop petite (facteur 1/10 facile).

Pour information:
Dans les valeurs prélevés il y a des valeurs, au bord du tableau (ceci représente un schémas en réalité) qui valent 0. Ces valeurs ne doivent pas compter dans la moyenne.

Ma logique est la suivante, parcourir les Z. Puis les y et x afin de sommer les valeurs, pour à la fin diviser par le nombres de valeurs (que j'ai compté à la main). J'associe cette valeur à une case d'un tableau sortie, puis passe à Z suivant et la ligne suivante de mon tableau.

3 réponses

Utilisateur anonyme
23 sept. 2014 à 11:59
Bonjour

Problème d'algo : tu n'initialises pas x=0 et y=0 aux bons endroits.
1
Akre66 Messages postés 55 Date d'inscription mercredi 14 mai 2014 Statut Membre Dernière intervention 4 octobre 2016
23 sept. 2014 à 11:50
Désolé j'ai pas mal de bug...

Pour programme:

def Moyennes(Tab):
##On intialise les valeurs
	fRES=open("SOMMES", "w")
	
	z=0
	y=0
	x=0
	SOM=0
	MOY= np.zeros(shape=16)
##On parcourt le tableau sous les differentes cotes
	while z<=15:
		fRES.write("\n \nZ=".format(z))
	
###Onb parcourt les valeurs selon x et y	
		while y<8:
			fRES.write("\n Y=".format(y))
			while x<8:
				SOM=SOM+Tab[x,y,z] ##on Somme les valeurs
				x=x+1
				fRES.write(format(SOM))
				fRES.write("\n")
			y=y+1
##On divise la somme par 58.25
		a=SOM/41
##On retiens la valeur	
		MOY[z]=a
		SOM=0
		z=z+1 ##On passe a la va leur suivante
	fRES.close()	
	return(MOY)


Si vous avez des questions/commentaires/aides, j'en serai ravi
Merci,
0
Akre66 Messages postés 55 Date d'inscription mercredi 14 mai 2014 Statut Membre Dernière intervention 4 octobre 2016
23 sept. 2014 à 12:05
A oui !
Je suis un boulet... problème réglés.

Merci le père
0