logo

numpy.meshgrid() em Python

O módulo numpy do Python fornece grade de malha() função para criar uma grade retangular com a ajuda das matrizes 1-D fornecidas que representam o Indexação matricial ou Indexação cartesiana . O MATLAB inspira um pouco a função meshgrid(). A partir dos vetores de coordenadas, a função meshgrid() retorna as matrizes de coordenadas.

numpy.meshgrid()

Na figura acima, o eixo x varia de -5 a 5, e o eixo y varia de -5 a 5. Portanto, há um total de 121 pontos marcados na figura, cada um com coordenada x e coordenada y. Para qualquer linha paralela ao eixo x, as coordenadas x dos pontos marcados são -5, -4, -3, -2, -1, 0, 1, 2, 3, 4 e 5 respectivamente. Por outro lado, para qualquer linha paralela ao eixo y, as coordenadas y dos pontos marcados de baixo para cima são -5, -4, -3, -2, -1, 0, 1, 2, 3 , 4 e 5 respectivamente.

Sintaxe

 numpy.meshgrid(*xi, **kwargs) 

Parâmetros

x1, x2,…, xn: semelhante a array

Este parâmetro define o array unidimensional, que representa as coordenadas de uma grade.

indexação: {'xy', 'ij'}(opcional)

Este é um argumento opcional que define a indexação cartesiana 'xy' (por padrão) ou matricial ('ij') da saída.

esparso: bool (opcional)

Este parâmetro também é opcional. Se precisarmos de uma grade esparsa para conservar memória, teremos que definir este parâmetro como True. Por padrão, está definido como Falso.

copiar: bool (opcional)

O objetivo deste argumento opcional é retornar uma cópia do array original para conservar memória. Por padrão, está definido como Falso.

Se ambos escasso e cópia de Se os parâmetros forem definidos como False, ele retornará matrizes não contíguas. Além disso, mais de um elemento de uma matriz de transmissão pode referir-se a um único local de memória. Se precisarmos escrever nos arrays, primeiro teremos que fazer cópias.

Devoluções

X1, X2, ..., Xn

O comprimento da coordenada do vetor de coordenadas é retornado desta função.

Exemplo 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 

Saída:

 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. ]]) 

No código acima

  • Importamos numpy com o nome alternativo np.
  • Criamos duas variáveis, ou seja, na e nb, e atribuímos os valores 5 e 3, respectivamente.
  • Criamos dois arrays, ou seja, aeb usando a função linspace().
  • Depois disso, declaramos as variáveis ​​'xa' e 'xb' e atribuímos o valor retornado de grade de malha()
  • Passamos os arrays 'a' e 'b' na função
  • Por último, tentamos imprimir o valor de 'xa' e 'xb' .

Na saída, foram mostradas duas matrizes que contêm o comprimento das coordenadas dos vetores de coordenadas.

Exemplo 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 

Saída:

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

Exemplo 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() 

Saída:

numpy.meshgrid()

No código acima

  • Importamos numpy com o nome alternativo np.
  • Importamos matplotlib.pyplot como plt.
  • Criamos dois arrays, ou seja, aeb usando a função np.arange().
  • Depois disso, declaramos as variáveis ​​'xa' e 'xb' e atribuímos o valor retornado de grade de malha()
  • Passamos os arrays 'a' e 'b' na função.
  • Depois disso, declaramos uma variável z e atribuímos o valor de retorno da função np.sine().
  • Por último, tentamos desenhar linhas de contorno e contornos preenchidos usando o plt.contourf()

Na saída, as linhas de contorno foram plotadas.

Exemplo 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() 

Saída:

numpy.meshgrid()

Exemplo 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() 

Saída:

numpy.meshgrid()