포스팅 목적
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좌표를 반환한다 이해하면 좋다.
'PL > Python' 카테고리의 다른 글
graphviz 설치 및 기본 사용법 개요 (1) | 2022.10.18 |
---|---|
[matplotlib] 기본 그래프그리기: plot() 함수 (0) | 2022.10.13 |
[numpy] linspace 기본 사용법과 arange와의 차이점 (0) | 2022.10.07 |
subplot, subplots 함수 사용법과 차이점 (0) | 2022.10.05 |
make_classification 함수로 랜덤 데이터셋 생성하기 (1) | 2022.10.05 |
댓글