developer tip

Python의 메시 그리드 함수 (meshgrid mgrid ogrid ndgrid)

copycodes 2020. 11. 2. 08:06
반응형

Python의 메시 그리드 함수 (meshgrid mgrid ogrid ndgrid)


나는 meshgrid와 같은 기능의 명확한 비교를 찾고 있습니다. 불행히도 찾을 수 없습니다!

Numpy http://docs.scipy.org/doc/numpy/reference/

  • mgrid

  • ogrid

  • meshgrid

Scitools http://hplgit.github.io/scitools/doc/api/html/index.html

  • ndgrid

  • boxgrid

이상적으로는이 모든 것을 요약 한 표가 완벽 할 것입니다!


numpy.meshgridMatlab의 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함수에 넣어. 당신이 그것에 대해 생각할 때, meshgridnumpy 배열에 대해 약간 불필요합니다. 이것은 당신이 할 수 있음을 의미합니다

XX, YY = numpy.atleast_2d(x, y)
YY = YY.T # transpose to allow broadcasting
ZZ = XX + YY

동일한 결과를 얻습니다.

mgrid그리고 ogrid어떤 사용 인덱스를 만들 수있는 그래서 표기 도우미 클래스입니다 XXYY같이 사용 무언가를 할 필요없이 바로 앞의 예는 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.mgridnp.meshgrid()같은 일을하지만, 제 1 및 제 2 축 교체하는 작업을 수행합니다

# 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.

참고 URL : https://stackoverflow.com/questions/12402045/mesh-grid-functions-in-python-meshgrid-mgrid-ogrid-ndgrid

반응형