Python for data analysis

Chapter 3. IPython 소개

표독's 2016. 3. 11. 14:36

Chapter 3. IPython 소개


무위로 행하고, 편안하게 일하라, 작은 것을 크게 여기고, 적은 것을 많게 여겨라, 어려운 일은 쉬울 때 처리하고 큰 일은 작은 것부터 처리하라. - 노자, 도덕경


작가는 'IPython과 텍스트 편집기'를 사용한다고 한다.


근본적으로 IPython은 대화형 컴퓨팅과 소프트웨어 개발 두 가지 모두를 위해 최적의 생산성을 얻도록 설계 되었다. 그리고 다른 프로그래밍 언어와 달리 '편집-컴파일-실행'방식보다 '실행-탐색'방식을 장려하고 있다. 

또한 운영체제의 셸, 파일 시스템과도 잘 통합되어 있다. 


이런 특징 덕분에 데이터 분석 프로그래밍에서 많은 부분을 차지하는 데이터 탐색, 실험, 오류 판독, 반복 등을 IPython에서는 빠르게 처리할 수 있다.


IPython 프로젝트는 진보된 대화형 파이썬 셸 그 이상이며, GUI 콘솔에서 바로 확인할 수 있는 표와 웹 기반의 대화형 노트북 형식, 가볍고 빠른 병렬 컴퓨팅 엔진을 포함한다. 또한 개발자를 위한 다른 도구와 마찬가지로 개인화가 가능하다. 


Ipython은 cmd에서 실행 가능하다.


3.1.1 탭 자동 완성


겉으로 보기에 IPython은 대화형 파이썬 인터프리터와는 조금 다르다. 매스태티카 사용자라면 번호가 붙어있는 입 출력 프롬프트가 친숙하게 느껴질 것이다. 셸에서 입력을 하는 동안 <Tab>을 누르면 네임스페이스에서 그 시점까지 입력한 내용과 맞아떨어지는 변수(객체, 함수 등)를 자동으로 찾아준다.


NOTE (TAB)을 눌렀을 때 화면에 출력 결과가 너무 많으면 초보자는 헷갈릴 수 있는데, IPython은 아예_로 시작하는 내부 메서드와 속성을 제외시키고 보여준다. 먼저 _를 입력하면 해당 메서드와 속성을 선택할 수 있다. 기본적으로 이런 메서드를 탭 자동 완성에 넣고 싶다면 IPython 환경 설정에서 설정할 수 있다.


나중에 살펴볼 %run 명령어와 함께 조합해서 사용하면 키 입력을 대폭 줄일 수 있다. 또한 자동 완성 기능을 사용하면 함수에서 이름을 가진 인자도 = 기호까지 포함해서 보여준다.


3.1.2 자기관찰

변수 이름 앞이나 뒤에 ? 기호를 붙이면 그 객체에 대한 일반 정보를 출력한다.

함수에도 마찬가지이다.

??를 사용하면 함수의 소스코드를 보여준다.


또 ?는 표준 유닉스나 윈도우 명령행에서와 마찬가지로 IPython의 네임스페이스를 검색하는 데 사용할 수도 있다. *기호로 둘러싸인 문자열과 포함하는 모든 이름을 보여준다. 예를 들어 Numpy의 최상단 네임스페이스 안에서 load를 포함하는 모든 함수 목록을 가져올 수 있다.


3.1.3 %run 명령어

%run 명령어를 사용하면 IPython 세션 안에서 파이썬 프로그램 파일을 불러와 실행할 수 있다. 


실행 중인 코드 중지하기

%run을 통해 스크립트가 실행되고 있거나 오랜 실행 시간이 필요한 코드가 실행되고 있는 중간에 <ctrl+C> 를 누르면 KeyboardInterrupt 예외를 발생시킨다. 이 예외는 몇몇 특수한 경우를 제외한 거의 모든 파이썬 프로그램을 즉시 멈추도록 한다.


TIP. 실행 중인 파이썬 코드가 확장 모듈을 호출한 경우에는 <Ctrl +C>를 눌러도 프로그램이 즉각 멈추지 않는데, 이런 경우에는 프로그램의 제어권이 파이썬 인터프리터로 되돌아올 때까지 기다리거나 심각한 경우에는 운영체제의 작업관리자 메뉴를 통해 파이썬 프로세스를 강제로 종료해야 한다.


3.1.4 클립보드에 있는 코드 실행하기


IPython에서 쉽고 빠르게 코드를 실행하려면 클립보드에 있는 내용을 붙여넣어 실행하면 된다. 이 방법은 다소 번거로워 보이지만 실제로 매우 유용하다.


예를 들어, 복잡하거나 실행 시간이 오래 걸리는 애플리케이션을 개발하면서 스크립트를 단위별로 조각내어 실행해보고 싶은 경우나 매 단계별로 현재까지 읽어들인 데이터와 결과를 확인해보고 싶은 경우, 혹은 인터넷에서 찾은 코드를 실행해보고 싶은데 새로 .py 파일을 만들기는 귀찮을 때 유용하게 사용할 수 있다.


<Ctrl + Shift + V >를 누르면 클립보드 내용이 붙여넣기 된다.

클립 보드의 각 줄을 IPython에 한 줄씩 입력하는 방식으로 붙여넣기 한다.

 줄 바꿈을 <return>으로 처리한다.


x =5 

y = 7

if x > 5:

    x += 1



    y = 8


이 스크립트를 붙여 넣기 한다면 indentical 오류가 발생한다.

이 경우 %paste 혹은 %cpaste 매직 함수를 이용한다.


%paste는 클립보드에 있는 텍스트를 단일 블록으로 실행한다.


%cpaste는 %paste와 유사하지만 코드를 붙여넣을 때 특수한 프롬프트를 제공한다.

실수로 잘못된 코드를 붙여 넣었다면 <Ctrl+C>를 눌러 %cpaste 프롬프트를 빠져나올 수 있다.



3.1.5 














'Python for data analysis' 카테고리의 다른 글

Chapter 5 pandas 시작하기  (0) 2016.03.25
Chapter 4. Numpy 기본 : 배열과 벡터 계산  (0) 2016.03.11
Chapter 2 사례 소개  (0) 2016.03.04
Chaper 1 시작하기 전에  (0) 2016.03.04