numpy.meshgrid
моделюється за meshgrid
командою Matlab . Він використовується для векторизації функцій двох змінних, щоб ви могли писати
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]])
Таким чином, ZZ
містить усі комбінації x
та y
вкладених у функцію. Якщо ви задумаєтесь, meshgrid
це трохи зайве для numpy-масивів, оскільки вони транслюються. Це означає, що ви можете це зробити
XX, YY = numpy.atleast_2d(x, y)
YY = YY.T
ZZ = XX + YY
і отримати той самий результат.
mgrid
і ogrid
є допоміжними класами, які використовують позначення індексу, щоб ви могли створювати їх XX
і YY
в попередніх прикладах безпосередньо, не використовуючи щось подібне linspace
. Порядок, у якому генеруються результати, зворотний.
YY, XX = numpy.mgrid[10:40:10, 1:4]
ZZ = XX + YY
YY, XX = numpy.ogrid[10:40:10, 1:4]
ZZ = XX + YY
Я не знайомий з матеріалами scitools, але, ndgrid
здається, це рівнозначно meshgrid
, хоча BoxGrid
насправді цілий клас, який допомагає в цьому поколінні.