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насправді цілий клас, який допомагає в цьому поколінні.