numpy.meshgrid
se modela después del comando meshgrid
de Matlab. Se utiliza para Vectorise funciones de dos variables, por lo que se puede escribir
x = numpy.array([1, 2, 3])
y = numpy.array([10, 20, 30])
XX, YY = numpy.meshgrid(x, y)
ZZ = XX + YY
ZZ => array([[11, 12, 13],
[21, 22, 23],
[31, 32, 33]])
Así ZZ
contiene todas las combinaciones de x
y y
puesto en la función. Cuando lo piensas, meshgrid
es un poco superfluo para las matrices numpy, ya que transmiten. Esto significa que puede hacer
XX, YY = numpy.atleast_2d(x, y)
YY = YY.T # transpose to allow broadcasting
ZZ = XX + YY
y obtener el mismo resultado.
mgrid
y ogrid
son clases auxiliares que utilizan la notación índice para que pueda crear y XX
YY
en los ejemplos anteriores directamente, sin tener que usar algo como linspace
. El orden en que se generan los resultados se invierte.
YY, XX = numpy.mgrid[10:40:10, 1:4]
ZZ = XX + YY # These are equivalent to the output of meshgrid
YY, XX = numpy.ogrid[10:40:10, 1:4]
ZZ = XX + YY # These are equivalent to the atleast_2d example
No estoy familiarizado con la materia SciTools, pero ndgrid
parece equivalente a meshgrid
, mientras BoxGrid
es en realidad una clase entera para ayudar con este tipo de generación.
¿Cómo no es una pregunta constructiva? – aquirdturtle
@aquirdturtle. Me estaba preguntando lo mismo. El número de votos ascendentes a la pregunta y respuesta es una buena indicación de su utilidad. Y los documentos no son tan claros como podrían ser. –