티스토리 뷰
numpy.meshgrid 함수를 사용하여 N개의 1차원 좌표 배열를 사용하여 아래와 같은 N차원의 격자 형태의 그래프를 그릴 수 있다.
매개변수(Parameter)
meshgrid의 함수 선언을 보면 아래와 같다.
numpy.meshgrid(*xi, copy=True, sparse=False, indexing='xy')
- *xi: x1, x2, ..., xn
그리드의 좌표를 나타내는 N개의 1차원 배열 - indexing: {'xy', 'ij'}, optional
meshgrid의 indexing 방식을 설정한다. 'xy'는 일반 좌표 표시 형식인 Cartesian indexing으로 meshgrid를 반환하고, 'ij'는 matrix indexing 으로 meshgrid를 반환한다. 출력의 인덱싱을 정의한다. (xy는 일반 좌표 표시 형식으로 - 좌표 또는 ij 행렬) - copy: bool, optional
Defalut는 True이다. False이면, 메모리를 절약하기 위해 배열을 임시 저장한 값을 사용하지 않고, 원본 배열을 그대로 반환한다. - sparse: bool, optional
Default는 False이다. True이면, 메모리를 절약하기 위해 모든 좌표값을 반환하지 않고 중복되는 값을 제거한 좌표값을 반환한다.(=> 희소 그리드로 반환한다.)
예제
행렬 x1과 x2를 사용하여 X1, X2으를 반환하는 meshgrid를 생성한다.
import numpy as np
x1 = np.linspace(1, 5, 5)
x2 = np.linspace(6, 10, 5)
X1, X2 = np.meshgrid(x1, x2)
print(X1)
"""
[[1. 2. 3. 4. 5.]
[1. 2. 3. 4. 5.]
[1. 2. 3. 4. 5.]
[1. 2. 3. 4. 5.]
[1. 2. 3. 4. 5.]]
"""
print(X2)
"""
[[ 6. 6. 6. 6. 6.]
[ 7. 7. 7. 7. 7.]
[ 8. 8. 8. 8. 8.]
[ 9. 9. 9. 9. 9.]
[10. 10. 10. 10. 10.]]
"""
indexing=ij
반환되는 meshgrid의 indexing 방식이 행렬 indexing 방식으로 설정된다.
indexing=xy , indexing=ij
indexing=xy (Cartesian indexing 방식)
(0,0) | (1,0) | (2,0) |
(0,1) | (1,1) | (2,1) |
(0,2) | (1,2) | (2,2) |
indexing=ij (Matrix indexing 방식)
(0,0) | (0,1) | (0,2) |
(1,0) | (1,1) | (1,2) |
(2,0) | (2,1) | (2,2) |
import numpy as np
x1 = np.linspace(1, 5, 5)
x2 = np.linspace(6, 10, 5)
X1, X2 = np.meshgrid(x1, x2, indexing='ij')
print(X1)
"""
[[1. 1. 1. 1. 1.]
[2. 2. 2. 2. 2.]
[3. 3. 3. 3. 3.]
[4. 4. 4. 4. 4.]
[5. 5. 5. 5. 5.]]
"""
print(X2)
"""
[[ 6. 7. 8. 9. 10.]
[ 6. 7. 8. 9. 10.]
[ 6. 7. 8. 9. 10.]
[ 6. 7. 8. 9. 10.]
[ 6. 7. 8. 9. 10.]]
"""
Sparse=True
메모리 절약을 위해 희소 그리드를 반환한다.
import numpy as np
x1 = np.linspace(1, 5, 5)
x2 = np.linspace(6, 10, 5)
X1, X2 = np.meshgrid(x1, x2, sparse=True)
print(X1)
"""
[[1. 2. 3. 4. 5.]]
"""
print(X2)
"""
[[ 6.]
[ 7.]
[ 8.]
[ 9.]
[10.]]
"""
Copy=False
copy는 눈으로 확인이 불가능하다.
메모리를 절약하기 위해 배열을 임시 저장한 값을 사용하지 않고, 원본 배열을 그대로 반환한다. 정도로 이해하고 있으면 되겠다.
'Python' 카테고리의 다른 글
[Numpy] permutation (0) | 2022.04.17 |
---|