logo

numpy.meshgrid() en Python

Le module numpy de Python fournit grille de maillage() fonction pour créer une grille rectangulaire à l'aide des tableaux 1D donnés qui représentent le Indexation matricielle ou Indexation cartésienne . MATLAB s'inspire quelque peu de la fonction meshgrid(). A partir des vecteurs de coordonnées, la fonction meshgrid() renvoie les matrices de coordonnées.

numpy.meshgrid()

Dans la figure ci-dessus, l'axe des x va de -5 à 5 et l'axe des y va de -5 à 5. Il y a donc un total de 121 points marqués dans la figure, chacun avec une coordonnée x et coordonnée y. Pour toute ligne parallèle à l'axe des x, les coordonnées x des points marqués sont respectivement -5, -4, -3, -2, -1, 0, 1, 2, 3, 4 et 5. Par contre, pour toute ligne parallèle à l'axe y, les coordonnées y des points marqués de bas en haut sont -5, -4, -3, -2, -1, 0, 1, 2, 3. , 4 et 5 respectivement.

Syntaxe

 numpy.meshgrid(*xi, **kwargs) 

Paramètres

x1, x2,…, xn : array_like

Ce paramètre définit le tableau unidimensionnel, qui représente les coordonnées d'une grille.

indexation : {'xy', 'ij'}(facultatif)

Il s'agit d'un argument facultatif qui définit l'indexation cartésienne 'xy' (par défaut) ou matricielle ('ij') de la sortie.

clairsemé : bool (facultatif)

Ce paramètre est également facultatif. Si nous avons besoin d'une grille clairsemée pour conserver la mémoire, nous devons définir ce paramètre sur True. Par défaut, il est défini sur False.

copie : bool (facultatif)

Le but de cet argument facultatif est de renvoyer une copie du tableau d'origine pour économiser la mémoire. Par défaut, il est défini sur False.

Si les deux clairsemé et copie les paramètres sont définis sur False, il renverra alors des tableaux non contigus. De plus, plusieurs éléments d’un tableau de diffusion peuvent faire référence à un seul emplacement mémoire. Si nous devons écrire dans les tableaux, nous devons d’abord faire des copies.

Retour

X1, X2, ..., Xn

La longueur des coordonnées du vecteur de coordonnées est renvoyée par cette fonction.

python, tri des tuples

Exemple 1:

 import numpy as np na, nb = (5, 3) a = np.linspace(1, 2, na) b = np.linspace(1, 2, nb) xa, xb = np.meshgrid(a, b) xa xb 

Sortir:

 array([[1. , 1.25, 1.5 , 1.75, 2. ], [1. , 1.25, 1.5 , 1.75, 2. ], [1. , 1.25, 1.5 , 1.75, 2. ]]) array([[1. , 1. , 1. , 1. , 1. ], [1.5, 1.5, 1.5, 1.5, 1.5], [2. , 2. , 2. , 2. , 2. ]]) 

Dans le code ci-dessus

  • Nous avons importé numpy avec le nom d'alias np.
  • Nous avons créé deux variables, c'est-à-dire na et nb, et leur avons attribué respectivement les valeurs 5 et 3.
  • Nous avons créé deux tableaux, c'est-à-dire a et b en utilisant la fonction linspace().
  • Après cela, nous avons déclaré les variables 'xa' et 'xb' et attribué la valeur renvoyée à grille de maillage()
  • Nous avons passé les tableaux 'a' et 'b' dans la fonction
  • Enfin, nous avons essayé d'imprimer la valeur de 'shah' et 'xb' .

Dans la sortie, deux tableaux ont été affichés qui contiennent la longueur des coordonnées des vecteurs de coordonnées.

Exemple 2 :

 import numpy as np na, nb = (5, 3) a = np.linspace(1, 2, na) b = np.linspace(1, 2, nb) xa, xb = np.meshgrid(a, b, sparse=True) xa xb 

Sortir:

 array([[1. , 1.25, 1.5 , 1.75, 2. ]]) array([[1. ], [1.5], [2. ]]) 

Exemple 3 :

 import numpy as np import matplotlib.pyplot as plt a = np.arange(-10, 10, 0.1) b = np.arange(-10, 10, 0.1) xa, xb = np.meshgrid(a, b, sparse=True) z = np.sin(xa**2 + xb**2) / (xa**2 + xb**2) h = plt.contourf(a,b,z) plt.show() 

Sortir:

numpy.meshgrid()

Dans le code ci-dessus

  • Nous avons importé numpy avec le nom d'alias np.
  • Nous avons importé matplotlib.pyplot en tant que plt.
  • Nous avons créé deux tableaux, c'est-à-dire a et b en utilisant la fonction np.arange().
  • Après cela, nous avons déclaré les variables 'xa' et 'xb' et attribué la valeur renvoyée de grille de maillage()
  • Nous avons passé les tableaux « a » et « b » dans la fonction.
  • Après cela, nous avons déclaré une variable z et attribué la valeur de retour de la fonction np.sine().
  • Enfin, nous avons essayé de tracer des courbes de niveau et des contours remplis en utilisant le plt.contourf()

Dans le résultat, des courbes de niveau ont été tracées.

Exemple 4 :

 import numpy as np import matplotlib.pyplot as plt a = np.linspace(-5, 5, 5) b = np.linspace(-5, 5, 11) random_data = np.random.random((11, 5)) xa, xb = np.meshgrid(a, b) plt.contourf(xa, xb, random_data, cmap = 'jet') plt.colorbar() plt.show() 

Sortir:

numpy.meshgrid()

Exemple 5 :

 import numpy as np import matplotlib.pyplot as plt a = np.linspace(-5, 5, 5) b = np.linspace(-5, 5, 11) random_data = np.random.random((11, 5)) xa, xb = np.meshgrid(a, b) sine = (np.sin(xa**2 + xb**2))/(xa**2 + xb**2) plt.contourf(xa, xb, sine, cmap = 'jet') plt.colorbar() plt.show() 

Sortir:

numpy.meshgrid()