SymPy-Lambdify () 함수

lambdify 함수는 SymPy 표현식을 Python 함수로 변환합니다. 넓은 범위의 값에 대해 표현식을 평가해야하는 경우 evalf () 함수는 효율적이지 않습니다. lambdify는 SymPy 이름을 주어진 숫자 라이브러리 (보통 NumPy)의 이름으로 변환한다는 점을 제외하면 람다 함수처럼 작동합니다. 기본적으로 수학 표준 라이브러리의 구현에 대해 lambdify합니다.

>>> expr=1/sin(x) 
>>> f=lambdify(x, expr) 
>>> f(3.14)

위의 코드 조각은 다음과 같은 출력을 제공합니다.

627.8831939138764

표현식에는 둘 이상의 변수가있을 수 있습니다. 이 경우 lambdify () 함수의 첫 번째 인수는 변수 목록이고 그 뒤에 평가할 표현식이옵니다.

>>> expr=a**2+b**2 
>>> f=lambdify([a,b],expr) 
>>> f(2,3)

위의 코드 조각은 다음과 같은 출력을 제공합니다.

13

그러나 숫자 백엔드로 numpy 라이브러리를 활용하려면 lambdify () 함수에 대한 인수와 동일하게 정의해야합니다.

>>> f=lambdify([a,b],expr, "numpy")

위의 함수에서 두 개의 인수 a와 b에 대해 두 개의 numpy 배열을 사용합니다. numpy 배열의 경우 실행 시간이 상당히 빠릅니다.

>>> import numpy 
>>> l1=numpy.arange(1,6) 
>>> l2=numpy.arange(6,11) 
>>> f(l1,l2)

위의 코드 조각은 다음과 같은 출력을 제공합니다.

array([ 37, 53, 73, 97, 125], dtype=int32)