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

Python NumPy polytrim()으로 다항식의 작은 후행 계수 제거하는 방법

Python NumPy에서는 polynomial.polytrim() 메서드를 사용하여 다항식에서 작은 후행 계수를 제거할 수 있습니다. 이 메서드는 뒤쪽의 불필요한 0(또는 tol 이하의 작은 값)이 제거된 1차원 배열을 반환하며, 만약 결과 시리즈가 완전히 비어 있게 된다면 0 하나만 포함된 시리즈를 반환합니다.

여기서 '작다(small)'는 절댓값 기준으로 작음을 의미하며, 매개변수 tol로 그 기준을 조절할 수 있습니다. 또한 '후행(trailing)'은 최고 차수의 계수를 가리킵니다. 예를 들어 [0, 1, 1, 0, 0] 배열(0 + x + x² + 0·x³ + 0·x⁴를 나타냄)에서는 3차와 4차 계수가 모두 잘려나가게 됩니다.

주요 매개변수는 다음과 같습니다.

  • c: 낮은 차수부터 높은 차수 순으로 정렬된 계수들의 1차원 배열입니다.
  • tol: 절댓값이 tol 이하인 후행(최고 차수) 요소들이 제거되는 임계값입니다.

구현 단계

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

import numpy as np
from numpy.polynomial import polyutils as pu

numpy.array() 메서드를 사용하여 계수들의 1차원 배열을 생성합니다.

c = np.array([0,5,0, 0,9,0])

배열을 출력해 확인합니다.

print("Our Array...\n",c)

배열의 차원을 확인합니다.

print("\nDimensions of our Array...\n",c.ndim)

배열 객체의 데이터 타입(dtype)을 확인합니다.

print("\nDatatype of our Array object...\n",c.dtype)

배열 객체의 형태(shape)를 확인합니다.

print("\nShape of our Array object...\n",c.shape)

이제 다항식에서 작은 후행 계수를 제거하기 위해 polynomial.polytrim() 메서드를 적용합니다. 이 메서드는 후행 0이 제거된 1차원 배열을 반환하며, 결과가 비어 있다면 0 하나만 담긴 시리즈를 반환합니다.

print("\nResult...\n",pu.trimcoef((c)))

전체 예제 코드

import numpy as np
from numpy.polynomial import polyutils as pu

# numpy.array() 메서드로 계수들의 1차원 배열 생성
c = np.array([0,5,0, 0,9,0])

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

# polytrim() 메서드로 작은 후행 계수 제거
print("\nResult...\n",pu.trimcoef((c)))

실행 결과

Our Array...
[0 5 0 0 9 0]

Dimensions of our Array...
1

Datatype of our Array object...
int64

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

Result...
[0. 5. 0. 0. 9.]

실행 결과를 보면 원래 배열 [0, 5, 0, 0, 9, 0]에서 마지막에 위치한 후행 0이 제거되어 [0. 5. 0. 0. 9.]가 반환된 것을 확인할 수 있습니다. 이처럼 trimcoef() 함수를 활용하면 다항식 표현을 간결하게 정리할 때 유용하게 사용할 수 있습니다.