JupyterNotebook의 대화 모드에서 변수와 표현식을 여러 줄로 표시

JupyterNotebook을 사용하여 프로그램 실행 결과를 보려면 print 문을 사용하는 방법과 표현식과 변수를 입력하는 방법이 있습니다.

print 문을 사용하는 방법은 표준 출력이라고하며, 다음과 같이 출력합니다. 하나의 셀에서 여러 개의 출력이 가능합니다.

이에 대해, 식이나 변수를 그대로 입력하는 방법이 있어, 대화 모드(인터랙티브 쉘)에서의 자동 표시등이라고 말해지고 있습니다. 「조금 실행 결과를 보고 싶다」라고 하는 경우에 「print」를 입력하는 수고를 줄일 수 있으므로 편리합니다. 그런데 대화 모드(인터랙티브 쉘)에서의 자동 표시에서는 한 셀 안에 마지막 결과만 표시해 주는 문제가 있습니다.

일반적으로 상황에 맞게 구분하면 됩니다만, 문제는 Sympy로 수식을 표시할 때입니다. 다음과 같이 표준 출력에서보다 대화 모드에서 자동 표시하는 것이 알기 쉽게 수식을 표시해줍니다.

그러면 한 셀에서 여러 대화 모드(인터랙티브 쉘)에서 자동 표시를 할 수 있도록 할 수 있으면 편리합니다. 이렇게 하려면 다음을 입력하여 실행합니다.

대화형 셸에서 변수와 수식을 여러 줄로 표시
from IPython import InteractiveShell
InteractiveShell.ast_node_interactivity = "all" 

JupyterNotebook은 IPython이라는 대화형 셸에서 실행되며 IPython에서는 Terminal IPython options에서 다양한 설정을 할 수 있습니다. 이 중 "ast_node_interactivity"매개 변수로 대화형 셸 표시 방법을 지정할 수 있습니다. ast_node_interactivity의 기본값은 "last_expr"(마지막에만)이지만 이것을 "all"로 설정하면 모두 표시 할 수 있습니다.

「$\log(x+1)$의 5층까지의 미분을 요구하고 싶다!」라고 하는 경우에도, 이런 예당도 생겨 버립니다.

n다음까지의 도함수 구하기
import sympy
sympy.var("x y")
f =sympy.ln(x+1)
for i in range(6):
    print(str(i) + '階の微分')
    sympy.diff(f,x,i)

좋은 웹페이지 즐겨찾기