PL/Python

[numpy] meshgrid 함수 알아보기

PIYA 2022. 10. 7.

포스팅 목적

 

numpy의 meshgrid 함수를 이해하고 사용방법에 익숙해지기 위함이다.

 

왜 이해를 못했는지 모르지만, 이상하게 바로 직관적으로 이해를 못했었다.

 

알고나니 어려운 것은 아닌데, 포인트를 못 잡으면 헤맬 수도 있겠다 싶다.

 

 

 

meshgrid 함수 기본 사용법

Parameters

일단 필수인자로, xi 배열을 받는다.

 

x-y평면에서 2차원 그리드를 만들 것이면 그리드로 지정할 x범위와 y범위를 넘겨준다.

 

x-y-z평면에서 3차원 그리드를 만들 것이면 3차원 입체 그리드로 지정할 x범위, y범위, z범위를 넘겨준다.

 

 

선택옵션으로는 indexing이 있다.

 

디폴트로 indexing='xy'인 Cartesian indexing방식이고,

indexing='ij'를 주면 matrix indexing을 반환한다.

 

 

기본 사용예제 코드와 실행결과

import numpy as np
import matplotlib.pyplot as plt

a = np.linspace(1,5,5)
b = np.linspace(51,55,5)
x,y = np.meshgrid(a,b)
print('x:\n', x, '\n')
print('y:\n', y)

plt.scatter(x,y)

 

linspace는 arange와 비슷한 함수인데, 3번째 인자의 개수로 해당구간을 균등분할하는 함수다

a와 b는 각각 1에서 5까지, 51에서 55까지를 5개씩 균등하게 나눴고,

meshgrid의 인자로 넘겨주었다.

 

즉 [1,2,3,4,5]와 [51,52,53,54,55] 단 두개의 원소 열개짜리 배열로,

아래 그림과 같은 25개의 좌표점을 만들어낼 수 있었다.

 

 

끝내며

 

함수 인자에 대한 이해

 

인자 두개가 어떤 의미가 있을까 한참을 고민했는데, 복잡한 게 아니었다.

 

인자값 첫 두개는 결국 그리드를 찍을 x값 범위 배열, y값 범위 배열 의 의미이다.

 

 

함수 리턴값에 대한 이해

 

결국 x,y값을 받는 것은

 

plt.scatter(x,y) 와 같이 사용하기 쉽도록 x좌표와 y좌표를 반환한다 이해하면 좋다.

 

 

댓글