Maison >développement back-end >Tutoriel Python >Comment le \'np.newaxis\' de NumPy peut-il être utilisé pour activer la diffusion dans les opérations de tableau ?

Comment le \'np.newaxis\' de NumPy peut-il être utilisé pour activer la diffusion dans les opérations de tableau ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-26 06:18:30969parcourir

How can NumPy's 'np.newaxis' be used to enable broadcasting in array operations?

Qu'est-ce que « np.newaxis » de NumPy et comment l'utiliser

Comprendre « np.newaxis »

'np.newaxis' de NumPy, également connu sous le nom de 'None', est un pseudo-index utilisé pour ajouter temporairement un axe à un tableau. Lorsqu'il est utilisé une seule fois, il augmente la dimension du tableau de un. Par exemple, un tableau 1D devient un tableau 2D, un tableau 2D devient un tableau 3D, et ainsi de suite.

Scénarios d'utilisation de 'np.newaxis'

Scénario 1 : Création de vecteurs ligne/colonne à partir de tableaux 1D

'np.newaxis' peut être utilisé pour convertir explicitement un tableau 1D en vecteur ligne (en insérant un axe le long de la première dimension) ou un vecteur colonne (en insérant un axe le long de la deuxième dimension).

Scénario 2 : Activation de la diffusion NumPy

'np.newaxis' devient utile lors de l'exécution d'opérations impliquant Diffusion NumPy. Par exemple, envisagez d'ajouter deux tableaux avec les formes « (5,) » et « (3,) ». NumPy générera une erreur en raison de formes incompatibles. En utilisant « np.newaxis » pour augmenter la dimension d'un tableau, la diffusion peut être activée pour effectuer l'opération.

Scénario 3 : Promotion des tableaux vers des dimensions plus élevées

'np.newaxis' peut être utilisé plusieurs fois pour promouvoir des tableaux à des dimensions plus élevées, ce qui peut être nécessaire pour les tableaux d'ordre supérieur (tenseurs).

Exemples d'utilisation

Pour utilisez 'np.newaxis', insérez-le dans l'expression de découpage. Par exemple :

<code class="python"># Create a row vector from a 1D array
x = np.arange(4)
x_row_vector = x[np.newaxis, :]</code>

Pour activer la diffusion :

<code class="python"># Add a 1D array to a 2D array
x1 = np.array([1, 2, 3, 4, 5])
x2 = np.array([5, 4, 3])
x1_new = x1[:, np.newaxis]    # Insert axis for broadcasting
result = x1_new + x2</code>

Alternative : 'np.expand_dims'

'np.expand_dims' est une alternative à 'np.newaxis' qui fournit un kwarg 'axis' intuitif pour spécifier le point d'insertion du nouvel axe.

Notes supplémentaires

  • ' np.newaxis' ajoute temporairement un axe, contrairement à 'np.reshape' qui remodèle le tableau selon une nouvelle disposition.
  • 'np.newaxis' et 'None' sont des objets équivalents.

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