2012년 12월 5일 수요일

유용한 python 라이브러리들

* 공학용 파이썬 환경을 구축하기 위한 가이드http://openopt.org



* 기본적으로 필요한 것들

(1) iPython ( http://ipython.org/ )
    강력한 파이썬 쉘 (터미널, QT기반 모두 제공)
    웹베이스 노트북 서비스 제공 (코드, 텍스트, 수학표현, 인라인 플랏, 다양한 미디어등도 제공)
    GUI툴킷을 이용하여 인터렉티브한 데이타 비쥬얼라이제이션 가능
    프로젝트에 올릴 수 있는 유연하고 포함가능한 인터프리터
    병렬연산을 하기에 쉽고 파퍼먼스가 좋음

(2) Numpy & Scipy ( http://numpy.scipy.org/ )
    강력한 N차원 오브젝트
    정교한 기능
    C/C++/Fortran 코드와 결합할 수 있는 툴
    선형대수, 푸리에 변환, 난수 등에 유용함

(3) MatPlotLib ( http://matplotlib.org/ )
    2D 플랏팅 라이브러리
    매틀랩 대응



* 추가적으로 유용한 것들

(1) Sympy ( http://code.google.com/p/sympy/ )
    심볼릭 수학을 할 수 있는 라이브러리

(2) Mpmath ( http://code.google.com/p/mpmath/ )
    상이한 정밀도를 가진 부동소수점 연산 라이브러리
    초월함수, 무제한 지수 크기, 복소수, 인터벌 산술계산, 수치 미적분, 근 찾기, 선형대수 등등
    자체 플랏팅 함수도 제공됨 (MatPlotLib로 그려도 됨)
    Sympy,Sage 등이 이 라이브러리에 의존함
    이 라이브러리 자체는 순수 파이썬 코드로 구성되어 있고,
    이것에 선행되는 의존성있는 라이브러리는 불필요

(3) Pyglet ( http://pyglet.org/ )
    GUI 및 멀티미디어 라이브러리
    이것에 선행되는 의존성있는 라이브러리는 없음
    멀티플 윈도우, 멀티 모니터 데스크탑 환경에 적합한 구성을 만들기 좋음
    이미지, 사운드, 뮤직, 비디오 등을 포멧에 별로 구애받지 않고 로딩할 수 있음

(4) Swignac ( http://swiginac.berlios.de/ )
    심볼릭 수학을 위한 라이브러리 (Sympy와는 다른 구현)
    Sympy는 Mpmath 기반이지만, Swignac은 GiNaC 기반임.
    GiNaC은 C/C++ 라이브러리로, 이것을 파이썬에서 그대로 사용하도록 인터페이스해 줌

(5) SDXF ( http://www.kellbot.com/sdxf-python-library-for-dxf/ )
    표준 CAD 파일 포멧의 하나인 DXF 포멧으로 출력해 주는 코드

(6) wxPython ( http://www.wxpython.org/ ) + wxGlade ( http://wxglade.sourceforge.net/ )
    파이썬으로 GUI 쉽게 만들어주는 라이브러리 및 GUI 툴
    wxGlade 가지고 화면 구성, 버튼 구성 뼈대를 만들어 준 후
    Generate하면 파이썬 코드가 생성되는데 거기에 호출함수에 해당 기능을 넣어주면 된다.
    간단하게 뭘 만들기 좋은 것 같다.



* 3D 그래픽 관련

(1) Mayavi2 ( http://code.enthought.com/projects/mayavi/ )
    데이타 비주얼라이제이션을 위한 툴 및 라이브러리
    핵심개발자의 블로그 http://gael-varoquaux.info/blog/?p=141



* 로봇 관련

(1) OpenRave ( http://openrave.org/ )
    테스트, 개발, 모션플래닝 과정을 지원하기 위한 라이브러리
    핵심 촛점은, 모션플랜을 위한 로봇 형상 및 기구학 정보를 시뮬레이션하고 해석하는데 있음
    커맨드라인 툴 위주로 구성되어 있으므로, 현존하는 로봇에 이것으로 구성된 알고리즘을 적용하기가 용이함
    런타임 코어 부분은 로봇제어기 또는 더 큰 프레임웤에 삽입하기에 충분하게 사이즈가 작음
    산업용 로봇 어플리케이션에 대응하는 것이 가장 중요한 목표




댓글 없음:

댓글 쓰기