Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python NumPy – 계수 열에 브로드캐스트된 점 x에서 Hermite_e 급수 평가하기

Hermite_e 급수 평가 개요

Python NumPy에서 점 x에 대한 Hermite_e(확률론적 에르미트) 급수를 평가하려면 numpy.polynomial.hermite_e 모듈의 hermeval() 메서드를 사용합니다. 이 메서드는 계수 배열 c로 정의된 Hermite_e 급수를 지정한 점들에서 계산한 결과를 반환합니다.

매개변수 살펴보기

x (첫 번째 매개변수) : 평가하고자 하는 점입니다. x가 리스트나 튜플이면 ndarray로 변환되며, 그 외의 경우에는 변경되지 않은 채 스칼라로 취급됩니다. 어떤 경우든 x 또는 그 요소들은 자기 자신과 c의 요소들 간의 덧셈과 곱셈을 지원해야 합니다.

c (두 번째 매개변수) : 차수 n에 해당하는 항의 계수가 c[n]에 위치하도록 정렬된 계수 배열입니다. c가 다차원인 경우 나머지 인덱스는 여러 개의 다항식을 의미합니다. 2차원 배열이라면 계수들이 c의 열(column)에 저장되어 있다고 생각할 수 있습니다.

tensor (세 번째 매개변수) : True이면 계수 배열의 형태가 오른쪽에 1이 추가되는 방식으로 확장되며, 추가되는 차원 수는 x의 차원 수와 같습니다(스칼라는 차원이 0으로 간주됨). 그 결과 c의 모든 계수 열이 x의 모든 요소에 대해 평가됩니다. False이면 x가 c의 열들을 따라 브로드캐스트되어 평가됩니다. 이 키워드는 c가 다차원일 때 특히 유용하며, 기본값은 True입니다.

구현 단계

먼저 필요한 라이브러리를 임포트합니다 −

import numpy as np
from numpy.polynomial import hermite_e as H

다차원 계수 배열을 생성합니다 −

c = np.arange(4).reshape(2,2)

배열을 출력합니다 −

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)

hermeval() 메서드를 사용해 점 x에서 Hermite_e 급수를 평가합니다. 여기서는 tensor=False로 설정하여 x가 계수 열을 따라 브로드캐스트되도록 했습니다 −

print("\nResult...\n",H.hermeval([1,2],c, tensor = False))

전체 예제 코드

import numpy as np
from numpy.polynomial import hermite_e as H

# 다차원 계수 배열 생성
c = np.arange(4).reshape(2,2)

# 배열 출력
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)

# hermeval() 메서드로 점 x에서 Hermite_e 급수 평가
print("\nResult...\n",H.hermeval([1,2],c, tensor = False))

실행 결과

Our Array...
    [[0 1]
    [2 3]]

Dimensions of our Array...
2

Datatype of our Array object...
int64

Shape of our Array object...
(2, 2)

Result...
    [2. 7.]

결과 해석

계수 배열 c는 [[0, 1], [2, 3]]이며, tensor=False 옵션 덕분에 점 [1, 2]가 계수 배열의 열 방향으로 브로드캐스트됩니다. 즉, c[0] + c[1]·x = [0, 1] + [2, 3]·[1, 2] = [2, 7]이 계산되어 최종 결과 [2. 7.]를 얻게 됩니다. 반면 tensor=True(기본값)를 사용하면 각 계수 열이 x의 모든 점에 대해 독립적으로 평가되어 2×2 형태의 결과가 반환됩니다.