1. 탭 자동 완성

쉘에서 입력을 하는 동안 <Tab>을 누르면 네임스페이스에서 그 시점까지 입력한 내용과 맞아떨어지는 변수를 자동으로 찾아준다.

2. 자기 관찰

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

<??> : 가능한 경우 함수의 소스코드를 보여줌

<*>도 사용 가능

3. %run 명령어

%run ipython_script_test.py : python ipython_script_test.py 와 동일하게 실행

%run -i 대화형 네임스페이스에 미리 선언된 변수에 접근해야 할 때


4. %debug

에러가 났을 때 예외가 발생한 시점의 스택 프레임 정보를 보여줌

%run -d : 스크립트를 실행하기 전에 디버거를 먼저 실행함

디버거 명령과 같은 변수가 있다면 !를 변수 이름 앞에 붙여서 내용 확인 가능


5. 쉽게 디버깅 하는 법

(1) set_trace()

def set_trace():

from IPython.core.debugger import Pdb

Pdb(color_scheme='Linux').set_trace(sys._getframe().f_back)

 함수를 정의 해 둔 후 문자가 생기는 곳 바로 위에 set_trace()코드를 넣으면 멈추고 살펴볼 수 있음


(2) debug()

def debug(f, *args, **kwargs):

from IPython.core.debugger import Pdb

pdb = Pdb(color_scheme = 'Linux')

return pdb.runcall(f, *args, **kwargs)

def f(x, y, z=1):

tmp = x + y

return tmp / z


debug(f, 1, 2, z=3)

과 같은 방식으로 코딩하면 됨


6. 코드 시간 측정

% time method1 = [x for x in strings if x.startswith('foo')]

%timeit method2 = [x for x in strings if x[:3] == 'foo']

%timeit은 여러번 실행 후 평균 시간 값을 return해줌


7. 기본적인 프로파일링 : 각 함수에서 소모된 시간을 기록

cProfile은 프로그램이나 임의의 코드 블록을 실행하면서 각 함수에서 소모된 시간을 계속 기록한다.

cprof_example.py

import numpy as np

from numpy.linalg import eigvals


def run_experiment(niter=100):

    K = 100

    results = []

    for _ in xrange(niter):

        mat = np.random.randn(K, K)

        max_eigenvalue = np.abs(eigvals(mat)).max()

        results.append(max_eigenvalue)

    return results

some_results = run_experiment()

print 'Largest one we saw: %s' % np.max(some_results)

python -m cProfile -s cumulative cprof_example.py

주의 : ipython notebook에서 실행할 때는 !를 맨 앞에 붙이고 실행해야 함!!

%run -p -s cumulative cprof_exaple.py


8. IPython HTML 노트북

ipython notebook --pylab=inline

실행 시 UTF-8 에러 날 경우 아래 사이트 참조

http://stackoverflow.com/questions/15526996/ipython-notebook-locale-error 


신고
Posted by 공놀이나하여보세

1. 파이썬이 데이터 분석을 위해 사용되는 이유

(1) 데이터 분석과 대화형 데이터 조사, 데이터 시각화에 사용 가능

(2) C, C++, 포트란 코드와 통합이 쉬움

(3) 간단하게 프로토 타입을 만들 수 있음


2. 파이썬의 단점

(1) 느림

(2) 멀티스레드가 힘듬 - GIL(Global Interpreter Lock) : 인터프리터가 한 번에 하나의 파이썬 바이트 코드 명령만 실햄됨

(3) OpenMP와 통합은 가능


3. 필수 라이브러리

(1) Numpy : 과학 계산용 파운데이션 패키지

(2) pandas : 구조화된 데이터를 빠르고 쉬우면서도 다양한 형식으로 가공할 수 있는 풍부한 자료 구조와 함수를 제공, 데이터 분석 환경으로 만드는데 꼭 필요

(3) matplotlib : 그래프나 2차원 데이터 시각화를 생성하는 유명한 라이브러리

(4) IPython : 표준 과학 꼐산용 파이썬 도구 모음에 포함된 컴포넌트

(5) ScyPy : 과학 계산 컴퓨팅 영역의 여러 기본 문제를 다루는 패키지 모음


4. 설치 방법

- 윈도우, OS X, 리눅스

- EPD가 안되므로 Anaconda를 설치해야함

아래 사이트 참조

https://medium.com/@younggun/anaconda-fe67e9c9709d





신고
Posted by 공놀이나하여보세

도덕경 - 노자 63장

철학 2015.02.09 10:31

난 항상 무슨 어려운 일을 해야할 때가 되면 어떻게 시작해야할 지 몰라 이리저리 방법을 찾는데 의외로 쉬운 것 부터 하나씩 하다보면 일이 풀릴 때가 많이 있었다. 

작은 것부터 쉬운 것 부터 하나씩 해 보자.


도덕경 - 노자 63장


爲無爲 위무위

무위로 행하고

 

事無事 사무사

무사로 일하며

 

味無味 미무미

무미를 즐기세요.

 

大小多少 대소다소

작은 것을 크게 여기고 적은 것을 많다 하세요.

 

報怨以德 보원이덕

원한을 덕으로 갚으세요.

 

圖難於其易 도난어기이

어려운 일은 쉬운 것부터 꾀하고

 

爲大於其細 위대어기세

큰 일은 작은 것부터 꾸리세요.

 

天下難事 천하난사

천하의 어려운 일은

 

必作於易 필작어이

반드시 쉬운 것에서 일어나고

 

天下大事 천하대사

천하의 큰 일은

 

必作於細 필작어세

반드시 작은 것에서 일어나게 됩니다.

 

是以聖人 시이성이

이로써 성인은

 

終不爲大 종불위대

끝내 큰 것을 도모하지 않습니다.

 

故能成其大 고능성기대

고로 능히 그 큰 것을 이루게 됩니다.

 

夫輕諾必寡信 부경락필과신

무릇 가벼운 허락은 필경 믿음이 부족하게 되고

 

多易必多難 다이필다난

용이한 것이 많으면 필경 어려움이 많을 것입니다.

 

是以聖人猶難之 시이성인유난지

이로써 성인은 그러한 것을 오히려 어렵게 여겨서

 

故終無難矣 고종무난의

고로 끝내 어려움이 없게 되는 것입니다.

신고

'철학' 카테고리의 다른 글

도덕경 - 노자 63장  (0) 2015.02.09
Posted by 공놀이나하여보세


티스토리 툴바