Jupyter 노트북은 단순하고 능률적이며,
초보자에게 친숙하고 매끄러운 디자인으로 인해
오늘날 모든 Python 지향 작업에
거의 필수 불가결한 에디터입니다.
돌이켜 생각해 보면 Jupyter와 같은
Interactive Python(IPython) 도구가 없는
코딩은 상상조차 할 수 없습니다.
기본적으로 IPython의 가장 중요한 장점은
커널이 활성화되어 있는 동안
개체를 메모리에 유지하여
스크립트를 다시 실행하는
마찰을 줄이는 것입니다.
또한 Jupyter는 일반적인 프로토타이핑
목적으로도 선호됩니다.
이를 통해 데이터 정리, 변환 및 시각화, 수치 시뮬레이션,
통계 모델링, 기계 학습 등과 같은 작업을
비교적 쉽게 수행할 수 있습니다.
그러나 단순성으로 인해 개발자는
프로젝트의 두 가지 기본 기둥인
시간과 계산 비용을 모두 소모하는
의도하지 않은 몇 가지 일반적인 실수를
저지르는 경향이 있습니다.
따라서 이번 포스팅에서는
거의 모든 Jupyter 사용자가 저지르는
두 가지 실수를 공유할 것입니다.
그것으로 시간을 엄청나게 절약할 수 있는
아주 우아한 해결책을 제시할 것입니다.
그럼 시작하겠습니다!
첫 번째 실수
Jupyter에서 코드를 작성했지만
계산 후 변수에 할당하는 것을
잊어버린 상황에 처한 적이 있지 않습니까?
그런 상황에서 셀을 마지못해 다시 실행하고
결과를 생성하여 변수에 할당해야 합니다.
저도 여러 번 겪었던 실수이기에
많은 공감을 느낍니다.
해결책은?
이것에 대한 좋은 해결책이 있다면 어떨까요?
Jupyter에서 셀을 실행하면
In [2]: besides the cell, 그렇지 않나요?
마찬가지로 셀의 출력 패널 외에
다른 것도 볼 수 있습니다.
보다 구체적으로 Out[3]:으로 표시됩니다.
IPython에서
Out은 output-id와 cell-output의 매핑을 저장하는
표준 파이썬 딕셔너리입니다.
In은 실행된 코드를 순서대로 저장하는
Python 리스트입니다.
유형은 다음과 같이 확인할 수 있습니다.
따라서 ouput을 변수에 할당하는 것을 잊은 경우
Out 딕셔너리를 사용하고
Output 패널 옆에 나타나는
output-id를 전달할 수 있습니다.
예를 들어 위의 groupby 출력에서
Out[3]을 사용하여 결과를 검색할 수 있습니다.
굉장히 멋지지 않나요?
두 번째 실수
Jupyter 노트북에서 작업하는 동안
몇 가지 이유로 커널을 다시 시작해야 하는
상황이 발생할 수 있습니다.
그러나 다시 시작하기 전에 후속 실행에서
데이터 개체를 다시 계산하지 않기 위해
데이터 개체를 디스크에 덤프 하는 경향이 있습니다.
이것은 시간이 많이 걸리는 과정입니다.
또한 중요한 각 데이터 개체를
개별적으로 저장하는 것은
상당히 번거로운 작업입니다.
해결책은?
"store" 명령은
이에 대한 이상적인 솔루션 역할을 합니다.
여기에서 커널을 다시 시작한 후에도
이전에 계산된 값을 얻을 수 있습니다.
또한 개체를 디스크에 덤프하는
번거로움을 겪을 필요가 없습니다.
아래 코드에서 확인할 수 있습니다.
커널을 다시 시작해 보겠습니다.
위와 같이 store 명령을 사용하면
커널을 다시 시작한 후에도
이전에 계산된 값을 검색할 수 있습니다.
요약하면 다음 단계입니다.
1단계: %store를 사용하여 변수를 저장합니다.
%store value
2단계: 커널을 다시 시작한 후 -r 옵션과 함께 %store를 사용합니다.
%store -r value
단일 %store 명령을 사용하여
여러 값을 저장할 수도 있습니다.
결론
이것으로 이번 포스팅을 마치겠습니다.
여러분들이 Jupyter 노트북을 사용하실 때,
조금이나마 도움이 되었으면 합니다.
대화형 Python 환경에서 작업하는 동안
이 두 가지 트릭을 통해
많은 시간을 절약할 수 있다고 확신합니다.
댓글