Maison >développement back-end >Tutoriel Python >Comment indexer efficacement des tableaux avec les techniques avancées de NumPy ?

Comment indexer efficacement des tableaux avec les techniques avancées de NumPy ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-16 15:51:03969parcourir

How to Efficiently Index Arrays with Advanced NumPy Techniques?

Indexation de tableaux avec des techniques NumPy avancées

Dans divers scénarios de calcul, il devient nécessaire d'indexer un tableau en fonction des valeurs d'un autre. Prenons l'exemple où nous avons deux matrices : A avec des valeurs arbitraires et B contenant des indices. L'objectif est de sélectionner des valeurs dans A telles que déterminées par les indices dans B.

Pour y parvenir, NumPy propose différentes méthodes d'indexation :

1. Indexation avancée :

A[np.arange(A.shape[0])[:, None], B]

Cette approche d'indexation initialise un nouveau tableau à l'aide de np.arange pour créer un index de colonne pour chaque ligne. Ensuite, il utilise ces indices de ligne comme première dimension et les valeurs de B comme deuxième dimension pour extraire les valeurs de A.

2. Indexation linéaire :

m, n = A.shape
out = np.take(A, B + n * np.arange(m)[:, None])

Vous pouvez également utiliser l'indexation linéaire, où m et n représentent la forme de A . Il utilise np.take pour sélectionner des éléments en fonction du tableau combiné B et des décalages d'index créés en multipliant n avec les indices de ligne de np.arange .

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!

Déclaration:
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