파이썬에서 x와 y의 데카르트 곱(Cartesian product) 위에서 2차원 다항식을 평가하려면 numpy.polynomial.polynomial 모듈의 polygrid2d(x, y, c) 메서드를 사용합니다. 이 메서드는 x와 y의 데카르트 곱으로 구성된 각 격자(grid) 지점에서 2차원 다항식의 값을 계산하여 반환합니다.
polygrid2d() 메서드의 매개변수
첫 번째 매개변수: x, y
x와 y는 다항식을 평가할 지점들을 나타냅니다. 최종 결과는 x의 각 원소와 y의 각 원소를 조합한 모든 쌍(데카르트 곱)에 대해 다항식을 계산한 값이 됩니다. 만약 x나 y가 리스트(list)나 튜플(tuple) 형태라면 먼저 ndarray로 변환되며, 이미 ndarray라면 그대로 사용됩니다. ndarray가 아닌 값은 스칼라(scalar)로 취급됩니다.
두 번째 매개변수: c (계수 배열)
c는 다항식의 계수를 담고 있는 배열입니다. 차수 i, j에 해당하는 항의 계수는 c[i, j]에 저장됩니다. 만약 c의 차원이 2보다 크다면, 남은 인덱스들은 여러 개의 계수 집합을 의미합니다. 반대로 c의 차원이 2보다 작다면, 2차원 형태로 맞추기 위해 자동으로 1이 뒤에 추가됩니다.
결과 배열의 shape은 c.shape[2:] + x.shape + y.shape가 됩니다.
단계별 구현 방법
1단계: 필요한 라이브러리 임포트
import numpy as np
from numpy.polynomial.polynomial import polygrid2d
2단계: 계수 배열 생성
1차원 계수 배열을 생성합니다.
c = np.array([3, 5])
3단계: 배열 정보 확인
print("Our Array...\n",c)
print("\nDimensions of our Array...\n",c.ndim)
print("\nDatatype of our Array object...\n",c.dtype)
print("\nShape of our Array object...\n",c.shape)4단계: 다항식 평가 실행
print("\nResult...\n",polygrid2d([1,2],[1,2], c))전체 예제 코드
import numpy as np
from numpy.polynomial.polynomial import polygrid2d
# 1차원 계수 배열 생성
c = np.array([3, 5])
# 배열 출력
print("Our Array...\n",c)
# 차원 확인
print("\nDimensions of our Array...\n",c.ndim)
# 데이터 타입 확인
print("\nDatatype of our Array object...\n",c.dtype)
# Shape 확인
print("\nShape of our Array object...\n",c.shape)
# polygrid2d()로 데카르트 곱 위에서 다항식 평가
print("\nResult...\n",polygrid2d([1,2],[1,2], c))
실행 결과
Our Array...
[3 5]
Dimensions of our Array...
1
Datatype of our Array object...
int64
Shape of our Array object...
(2,)
Result...
[21. 34.]
결과 해석
위 예제에서 계수 배열 c = [3, 5]는 다항식 p(x) = 3 + 5x를 나타냅니다. x = [1, 2]와 y = [1, 2]의 데카르트 곱은 (1,1), (1,2), (2,1), (2,2) 네 지점이지만, 이 다항식은 y에 의존하지 않으므로 결과는 [21, 34] 두 개의 값으로 출력됩니다. 실제로 p(1) = 3 + 5×1 = 8이 아니라 21인 이유는 polygrid2d가 내부적으로 계수를 2차원 형태로 확장하여 처리하기 때문입니다. 2차원 격자 평가가 필요한 과학 계산, 데이터 보간, 회귀 분석 등에서 이 메서드를 유용하게 활용할 수 있습니다.