Comment puis-je sélectionner efficacement des colonnes par index à l'aide de listes dans NumPy ?

Linda Hamilton
Libérer: 2024-10-27 02:11:30
original
827 Les gens l'ont consulté

How Can I Efficiently Select Columns by Index Using Lists in NumPy?

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]]
Copier après la connexion

Et la matrice d'index suivante :

[[False, True, False],
[True, False, False],
[False, False, True]]
Copier après la connexion

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>
Copier après la connexion

Cela produit le résultat souhaité :

[2, 4, 9]
Copier après la connexion

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>
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!