Python의 numpy 모듈은 다음을 제공합니다. 메쉬그리드() 주어진 1차원 배열을 사용하여 직사각형 그리드를 생성하는 함수 매트릭스 인덱싱 또는 데카르트 인덱싱 . MATLAB은 meshgrid() 함수에 어느 정도 영향을 미쳤습니다. meshgrid() 함수는 좌표 벡터에서 좌표 행렬을 반환합니다.
위 그림에서 x축의 범위는 -5~5이고, y축의 범위는 -5~5입니다. 따라서 그림에는 총 121개의 점이 표시되어 있으며 각 점에는 x좌표와 y 좌표. x축에 평행한 선의 경우 표시된 점의 x 좌표는 각각 -5, -4, -3, -2, -1, 0, 1, 2, 3, 4 및 5입니다. 반면, y축에 평행한 선의 경우 표시된 점의 아래쪽에서 위쪽까지의 y좌표는 -5, -4, -3, -2, -1, 0, 1, 2, 3입니다. , 4, 5 각각.
통사론
numpy.meshgrid(*xi, **kwargs)
매개변수
x1, x2,…, xn : 배열_유사
이 매개변수는 그리드의 좌표를 나타내는 1차원 배열을 정의합니다.
데이터베이스의 정규화
색인 생성: {'xy', 'ij'}(선택 사항)
이는 출력의 데카르트 'xy'(기본값) 또는 행렬('ij') 인덱싱을 정의하는 선택적 인수입니다.
중요한
스파스: bool(선택 사항)
이 매개변수도 선택사항입니다. 메모리 보존을 위해 희소 그리드가 필요한 경우 이 매개변수를 True로 설정해야 합니다. 기본적으로 False로 설정되어 있습니다.
복사: bool(선택 사항)
이 선택적 인수의 목적은 메모리 보존을 위해 원래 배열의 복사본을 반환하는 것입니다. 기본적으로 False로 설정되어 있습니다.
둘 다라면 부족한 그리고 복사 매개변수가 False로 설정되면 연속되지 않은 배열이 반환됩니다. 또한 브로드캐스트 배열의 두 개 이상의 요소가 단일 메모리 위치를 참조할 수 있습니다. 배열에 써야 한다면 먼저 복사본을 만들어야 합니다.
자바 수학 수업
보고
X1, X2, ..., Xn
좌표 벡터의 좌표 길이가 이 함수에서 반환됩니다.
예시 1:
import numpy as np na, nb = (5, 3) a = np.linspace(1, 2, na) b = np.linspace(1, 2, nb) xa, xb = np.meshgrid(a, b) xa xb
산출:
array([[1. , 1.25, 1.5 , 1.75, 2. ], [1. , 1.25, 1.5 , 1.75, 2. ], [1. , 1.25, 1.5 , 1.75, 2. ]]) array([[1. , 1. , 1. , 1. , 1. ], [1.5, 1.5, 1.5, 1.5, 1.5], [2. , 2. , 2. , 2. , 2. ]])
위의 코드에서
- 별칭 이름이 np인 numpy를 가져왔습니다.
- na와 nb라는 두 개의 변수를 만들고 각각 값 5와 3을 할당했습니다.
- linspace() 함수를 사용하여 두 개의 배열, 즉 a와 b를 만들었습니다.
- 그 후 변수 'xa'와 'xb'를 선언하고 반환된 값을 할당했습니다. 메쉬그리드()
- 함수에 배열 'a'와 'b'를 모두 전달했습니다.
- 마지막으로 우리는 '샤' 그리고 'xb' .
출력에는 좌표 벡터의 좌표 길이를 포함하는 두 개의 배열이 표시되었습니다.
자바의 큐와 우선순위 큐
예 2:
import numpy as np na, nb = (5, 3) a = np.linspace(1, 2, na) b = np.linspace(1, 2, nb) xa, xb = np.meshgrid(a, b, sparse=True) xa xb
산출:
array([[1. , 1.25, 1.5 , 1.75, 2. ]]) array([[1. ], [1.5], [2. ]])
예시 3:
import numpy as np import matplotlib.pyplot as plt a = np.arange(-10, 10, 0.1) b = np.arange(-10, 10, 0.1) xa, xb = np.meshgrid(a, b, sparse=True) z = np.sin(xa**2 + xb**2) / (xa**2 + xb**2) h = plt.contourf(a,b,z) plt.show()
산출:
위의 코드에서
- 별칭 이름이 np인 numpy를 가져왔습니다.
- matplotlib.pyplot을 plt로 가져왔습니다.
- np.arange() 함수를 사용하여 두 개의 배열, 즉 a와 b를 만들었습니다.
- 그 후 변수 'xa'와 'xb'를 선언하고 반환된 값을 할당했습니다. 메쉬그리드()
- 함수에 배열 'a'와 'b'를 모두 전달했습니다.
- 그런 다음 변수 z를 선언하고 np.sine() 함수의 반환 값을 할당했습니다.
- 마지막으로 다음을 사용하여 등고선과 채워진 등고선을 그려 보았습니다. plt.contourf()
출력에는 등고선이 그려졌습니다.
예시 4:
import numpy as np import matplotlib.pyplot as plt a = np.linspace(-5, 5, 5) b = np.linspace(-5, 5, 11) random_data = np.random.random((11, 5)) xa, xb = np.meshgrid(a, b) plt.contourf(xa, xb, random_data, cmap = 'jet') plt.colorbar() plt.show()
산출:
예시 5:
import numpy as np import matplotlib.pyplot as plt a = np.linspace(-5, 5, 5) b = np.linspace(-5, 5, 11) random_data = np.random.random((11, 5)) xa, xb = np.meshgrid(a, b) sine = (np.sin(xa**2 + xb**2))/(xa**2 + xb**2) plt.contourf(xa, xb, sine, cmap = 'jet') plt.colorbar() plt.show()
산출: