El módulo numpy de Python proporciona cuadrícula de malla() función para crear una cuadrícula rectangular con la ayuda de las matrices 1-D dadas que representan el Indexación matricial o indexación cartesiana . MATLAB inspira de alguna manera la función meshgrid(). A partir de los vectores de coordenadas, la función meshgrid() devuelve las matrices de coordenadas.
En la figura anterior, el eje x oscila entre -5 y 5, y el eje y oscila entre -5 y 5. Entonces, hay un total de 121 puntos marcados en la figura, cada uno con la coordenada x y coordenada y. Para cualquier línea paralela al eje x, las coordenadas x de los puntos marcados son -5, -4, -3, -2, -1, 0, 1, 2, 3, 4 y 5 respectivamente. Por otro lado, para cualquier línea paralela al eje y, las coordenadas y de los puntos marcados de abajo hacia arriba son -5, -4, -3, -2, -1, 0, 1, 2, 3. , 4 y 5 respectivamente.
Sintaxis
numpy.meshgrid(*xi, **kwargs)
Parámetros
x1, x2,…, xn: tipo matriz
Este parámetro define la matriz unidimensional, que representa las coordenadas de una cuadrícula.
indexación: {'xy', 'ij'}(opcional)
Este es un argumento opcional que define la indexación cartesiana 'xy' (por defecto) o matricial ('ij') de la salida.
escaso: bool (opcional)
Este parámetro también es opcional. Si necesitamos una cuadrícula escasa para conservar memoria, debemos establecer este parámetro en Verdadero. De forma predeterminada, está configurado en Falso.
copiar: bool (opcional)
El objetivo de este argumento opcional es que devuelva una copia de la matriz original para conservar memoria. De forma predeterminada, está configurado en Falso.
Si ambos escaso y Copiar los parámetros se establecen en False, entonces devolverá matrices no contiguas. Además, más de un elemento de una matriz de difusión puede hacer referencia a una única ubicación de memoria. Si necesitamos escribir en las matrices, primero debemos hacer copias.
Devoluciones
X1, X2, ..., Xn
La longitud de las coordenadas del vector de coordenadas se devuelve desde esta función.
Ejemplo 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
Producción:
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. ]])
En el código anterior
- Hemos importado numpy con nombre de alias np.
- Creamos dos variables, es decir, na y nb, y les asignamos los valores 5 y 3, respectivamente.
- Hemos creado dos matrices, es decir, a y b usando la función linspace().
- Después de eso, declaramos las variables 'xa' y 'xb' y asignamos el valor devuelto de cuadrícula de malla()
- Hemos pasado las matrices 'a' y 'b' en la función
- Por último, intentamos imprimir el valor de 'cha' y 'xb' .
En el resultado, se muestran dos matrices que contienen la longitud de las coordenadas de los vectores de coordenadas.
Ejemplo 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
Producción:
array([[1. , 1.25, 1.5 , 1.75, 2. ]]) array([[1. ], [1.5], [2. ]])
Ejemplo 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()
Producción:
En el código anterior
- Hemos importado numpy con nombre de alias np.
- Hemos importado matplotlib.pyplot como plt.
- Hemos creado dos matrices, es decir, a y b usando la función np.arange().
- Después de eso, declaramos las variables 'xa' y 'xb' y asignamos el valor devuelto de cuadrícula de malla()
- Hemos pasado las matrices 'a' y 'b' en la función.
- Después de eso, declaramos una variable z y asignamos el valor de retorno de la función np.sine().
- Por último, intentamos dibujar líneas de contorno y contornos rellenos usando el plt.contourf()
En el resultado, se han trazado las líneas de contorno.
Ejemplo 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()
Producción:
Ejemplo 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()
Producción: