Maison >développement back-end >Tutoriel Python >Comment une fonction vectorisée NumPy peut-elle justifier efficacement un tableau NumPy dans plusieurs directions ?
Justifier un tableau NumPy avec une fonction vectorisée généralisée
Introduction
Justifier un tableau NumPy fait référence à déplacer les éléments non nuls d'un côté du tableau, ce qui facilite la manipulation ou le traitement. Alors que la fonction Python fournie se concentre sur la justification à gauche d'une matrice 2D, une approche plus efficace et plus complète consiste à utiliser une fonction vectorisée NumPy.
Fonction vectorisée NumPy pour la justification de tableau
La fonction suivante, justifier, fournit un moyen généralisé de justifier un tableau 2D à la fois à gauche et à droite, ainsi que de haut en bas. directions :
import numpy as np def justify(a, invalid_val=0, axis=1, side='left'): if invalid_val is np.nan: mask = ~np.isnan(a) else: mask = a!=invalid_val justified_mask = np.sort(mask,axis=axis) if (side=='up') | (side=='left'): justified_mask = np.flip(justified_mask,axis=axis) out = np.full(a.shape, invalid_val) if axis==1: out[justified_mask] = a[mask] else: out.T[justified_mask.T] = a.T[mask.T] return out
Paramètres :
Exemples d'utilisation :
a = np.array([[1, 0, 2, 0], [3, 0, 4, 0], [5, 0, 6, 0], [0, 7, 0, 8]]) justified_array = justify(a, side='left') print(justified_array) # Output: # [[1, 2, 0, 0], # [3, 4, 0, 0], # [5, 6, 0, 0], # [7, 8, 0, 0]]
justified_array = justify(a, axis=0, side='up') print(justified_array) # Output: # [[1, 7, 2, 8], # [3, 0, 4, 0], # [5, 0, 6, 0], # [6, 0, 0, 0]]
Avantages de la fonction NumPy :
Conclusion
La fonction NumPy fournie, justifier, offre un moyen robuste et efficace de justifier les tableaux NumPy. Son caractère généralisé et sa mise en œuvre vectorisée en font un outil polyvalent pour les tâches de manipulation et de traitement de tableaux.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!