J'ai deux tableaux, aaa
représente l'indice de ligne de la matrice ref
et bbb
représente les valeurs à remplir en ref
.Remplir la matrice à la même position en faisant la moyenne de chaque entrée au lieu de la remplacer par la dernière entrée?
ref = np.zeros(shape=(4,2))
aaa = np.array([1,1,2,1,3]) # row index
bbb = np.array([1,9,2,5,3]) # value
# At column 0; row 1, fill 1. row 1, fill 9. row 2, fill 2. row 1, fill 5. row 3, fill 3.
ref[aaa,0] = bbb
print ref
>>[[ 0. 0.]
[ 5. 0.]
[ 2. 0.]
[ 3. 0.]]
Pour l'index de ligne 1, il dispose de 3 valeurs 1, 9 et 5. Je veux la moyenne d'entre eux en tant que (1 + 9 + 5)/3 = 15 au lieu de remplir par le dernier 5. Je pense à np.append()
chacun d'eux et np.mean()
à la fin.
ref[aaa,0] = [ref[aaa,0]].append(bbb)
Mais cette méthode renvoie nan
.
Ou
ccc = np.array([])
ref[aaa,0] = np.append(ccc, bbb)
L'une des lignes est encore 5 de cette façon. Comment est-ce que je peux employer np.append()
ici ou est-ce n'importe quel autre moyen rapide d'obtenir la moyenne au lieu de remplacer?
Pour votre information '[] .append (bbb)' ne fonctionne pas comme prévu que '.append()' modifie '[]' mais ne * renvoie * pas quelque chose. Aussi n'a pas vraiment de sens; pourquoi voudriez-vous '[] .append (stuff)' au lieu de simplement l'insérer dans une autre liste avec '[bbb]'? –