NumPy : sélection efficace de colonnes par index à l'aide de listes
De nombreuses tâches de manipulation de données impliquent la sélection de colonnes spécifiques à partir d'une matrice NumPy. Lorsque les colonnes à sélectionner varient selon la ligne, une approche simple consiste à parcourir le tableau, ce qui peut être coûteux en termes de calcul pour les grands ensembles de données.
Cependant, NumPy propose une solution plus optimisée utilisant des tableaux booléens ou entiers. Au lieu d'une liste d'index de colonnes, vous pouvez créer une matrice de la même forme que la matrice d'origine, où chaque colonne contient des valeurs indiquant si cette colonne doit être sélectionnée.
Par exemple, considérons la matrice suivante :
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
Et la matrice d'index suivante :
[[False, True, False], [True, False, False], [False, False, True]]
En utilisant la sélection directe de NumPy, vous pouvez facilement extraire les valeurs souhaitées :
<code class="python">a = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) b = np.array([[False, True, False], [True, False, False], [False, False, True]]) selected_values = a[b]</code>
Cela produit le résultat souhaité :
[2, 4, 9]
Vous pouvez également utiliser la fonction arange() et la sélection directe pour encore plus d'efficacité :
<code class="python">selected_values = a[np.arange(len(a)), [1, 0, 2]]</code>
En tirant parti des méthodes de sélection NumPy optimisées, vous pouvez améliorer considérablement la performance de vos tâches de manipulation de données lors de la sélection de colonnes en faisant varier les index par ligne.
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!