numpy.meshgrid
è modellato dopo il comando meshgrid
di Matlab. E 'usato per vectorise funzioni di due variabili, in modo da poter scrivere
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]])
Così ZZ
contiene tutte le combinazioni di x
e y
messi in funzione. Quando ci pensi, lo meshgrid
è un po 'superfluo per gli array numpy che trasmettono. Ciò significa che puoi fare
XX, YY = numpy.atleast_2d(x, y)
YY = YY.T # transpose to allow broadcasting
ZZ = XX + YY
e ottenere lo stesso risultato.
mgrid
e ogrid
sono classi di supporto che usano la notazione indice in modo che è possibile creare e XX
YY
negli esempi precedenti direttamente, senza bisogno di usare qualcosa come linspace
. L'ordine in cui viene generato l'output è invertito.
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
non ho familiarità con la roba scitools, ma ndgrid
sembra equivalente a meshgrid
, mentre BoxGrid
è in realtà un'intera classe per aiutare con questo tipo di generazione.
Come non si tratta di una domanda costruttiva? – aquirdturtle
@aquirdturtle. Mi stavo chiedendo lo stesso. Il numero di voti positivi per la domanda e la risposta è una buona indicazione della sua utilità. E i documenti non sono chiari come potrebbero essere. –