suite de code utilise la méthode 'de generic_filter', à partir de ndimage (scipy module de python), pour calculer des moyens pour une matrice de sous-éléments de 3x3; considérer chaque élément de la matrice comme un élément central (et l'exclure) et éviter les effets de frontière.Comment accéder à des valeurs individuelles utilisées par ndimage.generic_filter (module scipy)
import numpy as np
from scipy import ndimage
a = np.reshape(np.arange(25),(5,5))
print a
matrix = np.array(a).astype(np.float)
mask = np.ones((3, 3))
mask[1, 1] = 0
result = ndimage.generic_filter(matrix, np.nanmean, footprint = mask, mode='constant', cval=np.NaN)
print result
résultat est imprimé comme suit:
[[ 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]]
[[ 4. 4. 5. 6. 6.66666667]
[ 5.6 6. 7. 8. 8.4 ]
[ 10.6 11. 12. 13. 13.4 ]
[ 15.6 16. 17. 18. 18.4 ]
[ 17.33333333 18. 19. 20. 20. ]]
et il pourrait être corroboré ce qu 'il fonctionne comme prévu [premier moyen est de (5 + 6 + 1)/3 = 4, le deuxième moyen est (0 + 6 + 5 + 7 + 2)/5 = 4; et ainsi de suite].
Ma question est de savoir comment puis-je accéder aux valeurs individuelles (matrice) sous utilisés par ndimage.generic_filter pour calculer chaque np.nanmean?
Je pourrais utiliser des valeurs individuelles (x) en dehors de ** func ** en les imprimant dans un fichier texte de disque. Est-il possible de les imprimer dans une variable pour les utiliser directement dans le code? (ou dois-je poser une autre question?) – xunilk
Vous pouvez les ajouter à une liste. J'ai mis à jour le code pour montrer ce que je veux dire. – unutbu
Merci beaucoup. Cela fonctionne parfaitement. – xunilk