Indexation d'un tableau Numpy 2D avec deux listes d’indices distinctes n’est pas aussi simple que d’utiliser une seule liste d’indices. Cela peut être difficile lorsqu'il s'agit de grands tableaux, car cela nécessite la diffusion et le remodelage des tableaux pour obtenir la sélection indexée souhaitée.
La fonction np.ix_ de Numpy peut être utilisée pour créer un tuple de tableaux d'indexation qui peuvent être diffusés les uns contre les autres pour obtenir le modèle d'indexation souhaité. Cette approche maintient la lisibilité et favorise l'optimisation du code.
Pour effectuer l'indexation à l'aide de np.ix_, suivez ces étapes :
Ce qui suit Le code montre comment utiliser np.ix_ pour les sélections basées sur un index :
<code class="python">import numpy as np # Create indices row_indices = [4, 2, 18, 16, 7, 19, 4] col_indices = [1, 2] # Create broadcasting arrays index_tuples = np.ix_(row_indices, col_indices) # Perform indexing x_indexed = x[index_tuples]</code>
>>> x_indexed array([[76, 56], [70, 47], [46, 95], [76, 56], [92, 46]])
Syntaxe alternative :
Une syntaxe alternative pour utiliser np.ix_ consiste à utiliser l'opérateur : pour spécifier tous les indices le long d'un axe, sauf indication contraire.
Diffusion :
Il est important de noter que la diffusion s'effectue le long des axes du tableau d'entrée. Par conséquent, la taille des tableaux d'indexation le long de chaque axe doit correspondre aux dimensions correspondantes du tableau d'entrée.
Optimisation :
L'indexation à l'aide de np.ix_ et la diffusion peuvent offrir des avantages significatifs en termes de performances. par rapport à l'itération sur des indices ou à l'utilisation de masques booléens. Ceci est particulièrement avantageux lorsque vous travaillez avec de grands 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!