Sunday, May 22, 2011

A Primer on Scientific Programming with Python

사실은 python으로 applet 어떻게 web에 심는건지 알고 싶어서 검색하다가 나온책. applet 심기랑 전혀 상관없다. 과학적 데이터를 어떻게 프로그래밍으로 다루나 뭐 이런 거 나온 책. 수치로 식 세우고 plot 그리고 그런 책. 생각보다 python으로 숫자, 식 관련해서 그래프 그리고 뭐 이런 프로그래밍을 거의 안해봤는데(이런건 R써야 할거 같아서).. 알아두면 괜찮을거 같아서 띄엄 띄엄 보고 있는책. 영건씨가 알려준 어둠의 경로로 받아서 보고 있는데 괜찮은거 같다. 언넝 ipad와서 넣어가지고 다니면서 봤음 하네. 


배우게 된거. 

  • 젤 중요한것 하나 : vectorization instead of scalar code. 명시적을 source에 for가 있으면 건 scalar code.
  • arrays : list 랑 비슷하긴 한데(list의 variant 라고 한다).. element가 같은 type이고 갯수가 고정일 때 사용. list에 비해 계산이 빠르고 memory도 적게 먹음. 아.. 이게 원래 python의 data type이 아닌데.. array 이란 객체가 있긴 있다. python에. 근데 이거 별로 효율적이지 않단다. 그럼 어딨는거냐? numpy 패키지에 있는 array 쓰란다. from matplotlib.pylab import * 하면 from numpy import * 까지 실행되고 이건 뭐하는 거냐면 matlab 스타일의 syntax를 사용하는 패키지. 
  • numpy.array는 b = a[1:-1]하면 copy되는것이 아니라 reference가 달리는것. 곧 b = a[1:-1]로 변수 b를 a 데이터가 가르키는 곳을 가르키므로 b를 변형하면 a도 변형된다.
  • 원인을 찾지 못했는데 scitools.std 를 import 하려면 from maplotlib.pylab import *을 먼저 해야 한다. 나만 그런건지 모르겠는데.. 왜 그러지..