Сеточные функции сетки в Python (meshgrid mgrid ogrid ndgrid)
Я ищу четкое сравнение meshgrid функции. К сожалению, я не нахожу его!
включает в себя http://docs.scipy.org/doc/numpy/reference/ предоставляет
mgridogridmeshgrid
Scitools http://hplgit.github.io/scitools/doc/api/html/index.html обеспечивает
ndgridboxgrid
в идеале-таблица, суммирующая все это было бы прекрасно!
2 ответов:
numpy.meshgridмоделируется после . Он используется для векторизации функций двух переменных, так что вы можете написать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поместить в функцию. Когда вы думаете об этом!--4--> немного излишне для массивов numpy, так как они транслируются. Это означает, что вы можете сделатьXX, YY = numpy.atleast_2d(x, y) YY = YY.T # transpose to allow broadcasting ZZ = XX + YYи получить тот же результат.
mgridиogridвспомогательные классы, которые используют индекс нотации, так что вы можете создатьXXиYYв предыдущих примерах напрямую, без необходимости использовать что-то вродеlinspace. Порядок, в котором генерируются выходные данные, реверсируется.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я не знаком с вещами scitools, но
ndgridпохоже, что эквивалентноmeshgrid, аBoxGridна самом деле весь класс, чтобы помочь с такого рода поколения.
np.mgridиnp.meshgrid()сделать то же самое, но первая и вторая оси меняются местами:# 3D d1, d2, d3 = np.mgrid[0:10, 0:10, 0:10] d11, d22, d33 = np.meshgrid(np.arange(10),np.arange(10),np.arange(10)) np.array_equal(d1,d11)доходность
False. Просто поменяйте местами первые два измерения:d11 = np.transpose(d11,[1,0,2]) np.array_equal(d1,d11)доходность
True.
Comments