Maison >développement back-end >Tutoriel Python >Comment `np.ix_` peut-il simplifier la sélection et l'affectation d'index dans les tableaux NumPy multidimensionnels ?
La manipulation des sélections ou des affectations dans des tableaux NumPy multidimensionnels peut être simplifiée à l'aide de np.ix_. Voici comment cela fonctionne :
A. Selection
np.ix_ vous permet de regrouper des tableaux d'indexation en combinaisons de dimensions supérieures pour indexer des tableaux multidimensionnels. Pour effectuer une sélection à l'aide de deux tableaux d'indexation 1D (par exemple, row_indices et col_indices), utilisez :
<code class="python">x_indexed = x[np.ix_(row_indices, col_indices)]</code>
Cela équivaut à une version imbriquée où le tableau d'indexation externe (par exemple, row_indices) est diffusé sur le tableau d'indexation interne. tableau d'indexation (col_indices) :
<code class="python">x_indexed = x[np.asarray(row_indices)[:,None], col_indices]</code>
B. Assignation
De même, en utilisant le tuple de tableaux d'indexation créé par np.ix_, les affectations scalaires ou la diffusion d'un bloc de données peuvent être effectuées directement :
<code class="python">x[np.ix_(row_indices, col_indices)] = scalar # assign a scalar x[np.ix_(row_indices, col_indices)] = block # assign a broadcastable block</code>
np.ix_ fonctionne également avec des masques booléens :
A. Sélection
Pour sélectionner un bloc de données à l'aide de masques booléens (row_mask et col_mask), utilisez :
<code class="python">x[np.ix_(row_mask, col_mask)]</code>
B. Devoir
Pour les devoirs avec des masques booléens, utilisez :
<code class="python">x[np.ix_(row_mask, col_mask)] = scalar # assign a scalar x[np.ix_(row_mask, col_mask)] = block # assign a broadcastable block</code>
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!