apsw, aspell-python, assimulo, astropy, Atom, autopy, Babel, backports, basemap, Bazaar, bcolz, bigfloat, bioformats, biopython, bio_formats, bitarray, BLAZE, blender-mathutils, blist, blosc, bokeh, boost.python, bottleneck, bsdiff4, carray, cartopy, casuarius, cdecimal, cellcognition, cellprofiler, ceodbc, certifi, cffi, cgal-python, cgkit, Cheetah, cld, conda, Console, Coverage, curses, cvxopt, cx_freeze, cython, cytoolz, delny, dipy, docutils, dpmix, dynd, EcOS, enaml, epydoc, ETS, fastcluster, faulthandler, ffnet, fiona, fipy, fonttools, friture, gdal, gevent, gmpy, greenlet, guiqwt, h5py, holopy, htseq, ilastik, iminuit, imread, intbitset, iocbio, IPython, iris, javabridge, jcc, jinja2, jpype, jsonlib, kivy, kiwisolver, kwant, la, liblas, liblinear, libpython, libsbml, libsvm, libtfr, libxml-python, line_profiler, llist, llvmlite, llvmpy, lp_solve, lsqfit, lxml, mahotas, MAKO, marisa-trie, markupsafe, matplotlib, MDP, Mercurial, meshpy, milk, minepy, mlpy, mmlib, mmseg, mmtk, mod_wsgi, mpi4py, msgpack, mxbase, mysql-python, mysqlclient, natgrid, netcdf4, networkx, nibabel, nipy, nipype, nitime, nlopt, nltk, nmoldyn, Noise, nose, numba, Numeric, numexpr, numpy, numscons, ODE, openbabel, opencv, openexr, openglcontext, openimageio, ORANGE, oursql, pandas, patsy, pgmagick, pillow, pip, Planar, Polygon, polymode, psutil, psycopg, Pulp, py-fcm, py-postgresql, py2exe, pyalembic, pyamf, pyamg, pyaudio, pybluez, pybox2d, pycairo, pycares, pycifrw, pycluster, pycogent, pycosat, pycparser, pycuda, pycurl, pydbg, pydde, pyeda, pyephem, pyexiv2, pyfftw, pyfftw3, pyfits, pyfltk, pyfmi, pygame, pygit2, pyglet, pygments, pygraphviz, pygtk, pyhdf, pyhook, pyicu, pyisapie, pylibdeconv, pylibtiff, pylzma, pymatlab, pymc, pymca, pymedia, pymex, pyminuit, pymix, pymol, pymongo, pymssql, pymunk, pymutt, pymvpa, pynifti, pyodbc, pyopencl, pyopengl, pyparsing, pyproj, pyqt4, pyqwt, pyreadline, pyropes, pyrxp, pySerial, pysfml, pyshp, pyside, pysparse, pyspharm, pysqlite, pystemmer, pytables, python-cjson, python-dateutil, python-igraph, python-ldap, python-levenshtein, python-lz4, python-lzo, python-snappy, python-sundials, pythonmagick, pythonnet, pytst, pytz, pyusb-ftdi, pyviennacl, pyvisa, pyvrml97, pywavelets, pywcs, pywin32, pyxml, pyyaml, pyzmq, qimage2ndarray, quantlib, quickfix, qutip, rasterio, re2, Regex, reportlab, requests, rpy2, rtmidi-python, rtree, scientificpython, scikit-bio, scikit-image, scikit-learn, scikits.ann, scikits.audiolab, scikits.delaunay, scikits.hydroclimpy, scikits.odes, scikits.samplerate, scikits.scattpy, scikits.timeseries, scikits.umfpack, scikits.vectorplot, scipy, scipy-cluster, scipy-stack, scitools, scons, sendkeys, setuptools, sfepy, shapely, silvercity, simpleitk, simplejson, Six, slycot, smc.freeimage, sparsesvd, sphinx, Spyder, SQLAlchemy, statsmodels, steps, sympy, ta-lib, theano, thrift, tinyarray, Tornado, trfit, twainmodule, Twisted, ujson, umysql, veusz, videocapture, vigra, virtualenv, visionegg, vispy, visvis, vitables, vlfd, vpython, vtk, wxPython, yappi, YT, zodb3, zope.interface

요즘 파이썬을 주로 사용하면서 다양한 모듈들을 찾는 재미에 푹 빠졌는데요~

 

윈도우를 주로 사용하다 보니 pip 로 인스톨이 안되는 경우가 종종 있더군요.

 

이런 경우에는 버츄얼 박스에서 리눅스를 설치해서 사용해도 되긴 하는데~

 

찾아보니 아래 주소에 다양한 윈도우용 파이썬 모듈들이 있더군요.

 

http://www.lfd.uci.edu/~gohlke/pythonlibs/

 

위 주소에서 제공하는 모듈들은 다음과 같습니다.

 

pycosat, virtualenv, pip, setuptools, requests, libsvm, liblinear, cytoolz, dynd, gevent, bokeh, blaze, pygit2, numba, llvmlite, iris, pillow, mercurial, netcdf4, rpy2, biopython, reportlab, scipy, yt, nibabel, backports, pandas, ets, pyalembic, shapely, scikit-bio, pycairo, spyder, statsmodels, python-dateutil, pytz, sfepy, apsw, python-igraph, pyqwt, pylzma, openimageio, pymssql, pyvisa, sympy, lxml, lsqfit, thrift, pyicu, pyside, guiqwt, pyqt4, regex, gdal, cellcognition, vigra, h5py, pytables, pycurl, ipython, pygments, mahotas, pyspharm, imread, scons, kiwisolver, enaml, atom, faulthandler, conda, bigfloat, yappi, visvis, simplejson, line_profiler, rasterio, fiona, bioformats, javabridge, mysqlclient, numpy, pyzmq, pyfftw, minepy, mlpy, matplotlib, py2exe, veusz, greenlet, cython, sqlalchemy, bcolz, psutil, vlfd, pyparsing, pymc, pywin32, friture, pymol, orange, python-ldap, gmpy, pymca, blender-mathutils, jcc, scientificpython, opencv, kwant, pymunk, pulp, jpype, intbitset, astropy, qutip, networkx, twisted, pylibtiff, quickfix, six, nltk, tornado, numexpr, rtree, polygon, pythonnet, pycares, scikit-learn, psycopg, sphinx, vispy, scipy-stack, nose, libpython, pyxml, cvxopt, pycuda, basemap, qimage2ndarray, iminuit, pgmagick, milk, llvmpy, pymongo, nlopt, libsbml, pysqlite, pyfits, patsy, certifi, mxbase, python-lz4, blosc, meshpy, docutils, cffi, scikit-image, lp_solve, pyeda, pystemmer, pyopengl, pyrxp, pymvpa, cartopy, natgrid, python-levenshtein, ecos, msgpack, pyfmi, assimulo, nitime, mako, jinja2, pyephem, pyopencl, mod_wsgi, cx_freeze, pyviennacl, markupsafe, vitables, mpi4py, quantlib, pyaudio, steps, mmtk, pyminuit, smc.freeimage, vtk, pyhdf, pyyaml, pycifrw, pygame, videocapture, pythonmagick, pyvrml97, openglcontext, zope.interface, blist, aspell-python, ode, pycluster, cdecimal, noise, scikits.odes, scikits.umfpack, scikits.ann, scikits.vectorplot, curses, mysql-python, oursql, libtfr, htseq, marisa-trie, ffnet, polymode, slycot, ta-lib, pymutt, bsdiff4, pyfltk, pyisapie, pycparser, pybluez, openbabel, pysfml, pywavelets, pyserial, ujson, rtmidi-python, kivy, nipype, pydde, llist, pymix, dipy, bio_formats, bottleneck, fastcluster, la, cgkit, planar, ceodbc, scipy-cluster, pyhook, pyproj, sparsesvd, simpleitk, casuarius, coverage, twainmodule, python-snappy, theano, boost.python, bitarray, pyodbc, fonttools, pylibdeconv, fipy, tinyarray, pyshp, carray, pysparse, nipy, bazaar, pygraphviz, babel, pyamg, umysql, scikits.samplerate, scikits.scattpy, scikits.hydroclimpy, scikits.delaunay, autopy, libxml-python, pyusb-ftdi, mmlib, cellprofiler, pyreadline, py-fcm, liblas, vpython, scikits.audiolab, py-postgresql, pyamf, holopy, pyropes, epydoc, cheetah, pywcs, python-sundials, openexr, dpmix, cld, mdp, pycogent, jsonlib, silvercity, console, python-cjson, pytst, sendkeys, pydbg, pyglet, python-lzo, delny, pyexiv2, ilastik, scitools, trfit, re2, cgal-python, pymedia, pyfftw3, pymex, pymatlab, zodb3, pygtk, numeric, nmoldyn, iocbio, wxpython, pybox2d, mmseg, pynifti, scikits.timeseries, numscons, visionegg

다양한 Python package 들 중에 Pyzo 라는 것을 발견 했습니다. 아래 포스팅에서 소개했던 spyder 와 비스므리한 package 같더군요.



2013/11/13 - [유틸] - 과학 분석에 사용되는 Python IDE Spyder


 

아래 공식 홈페이지의 소개를 보니 data-centric 프로그래밍을 위한 툴을 만드는 게 목표라 하는데~ IEP 라는 IDE 가 같이 들어 있어서 사용하기 좋더군요.

 

http://www.pyzo.org/

 

Pyzo 에는 아래 소개와 같이 다양한 packages 들이 같이 들어 있습니다. Numpy, scipy, matplotlib 와 같은 익숙한 package들도 있었지만 pandas, sympy, nose 와 같이 생소하지만 알아보고 싶은 package 들도 있더군요.

 

http://www.pyzo.org/packages.html#packages

 

저는 아래 포스팅에서 소개한 바와 같이 Eclipse 환경에서 Pydev 를 사용해서 코딩하곤 했는데~ 별다른 불편함 없이 잘 쓰고 있었습니다.

 

http://iamaman.tistory.com/1442

 

그런데 위 에서 소개한 Eclipse 환경에서는 에디터 환경에서 코드의 일부만 실행시키고 싶다거나 할 때는 그리 좋지 않더군요. 혹시 eclipse 에서 pydev 를 사용할 때 코드의 일부를 실행하는 방법이 따로 있다면 소개 좀……

 

코드의 일부만 실행한다는 것은 아래 MATLAB Editor 의 셀 기능과 같이 코드를 분리해서 실행하고 싶다는 것입니다.


2011/02/23 - [programming language/MATLAB] - Matlab Script coding tips, cell mode


 

Python 과 같이 인터프리터가 있는 환경에서는 코드를 분리해서 실행시키고 하는 과정들이 좋을 때가 있더군요.

 

이러한 기능들은 디버그를 한다거나 할 때 매우 편리합니다.

 

첫 줄에 소개한 Pyzo는 아래 주소에서 다운로드 가능합니다.

 

http://www.pyzo.org/downloads.html

 

아래 그림과 같이 각자의 OS 버전에 맞는 Pyzo 버전을 다운로드 합니다. 저는 현재 windows 64 비트라 pyzo_distro-2014a.win64.zip (64 bit zip) 를 다운로드 받았습니다. 다운로드 받은 Zip 파일을 압축해제 하고 pyzo.exe 를 실행하면 됩니다.

 

 

실행하면 다음과 같은 IEP IDE 가 뜨게 됩니다.


 

위에서 에디터 부분을 보면 ##으로 시작하는 줄들이 있는데~ 이게 바로 MATLAB 에서도 소개했던 cell 단위 입니다. IEP 에서 이 셀 단위로 실행 할 수 있습니다.

 

아래 그림에서 각 단위 실행에 대해 단축키들이 있는데 Return 은 Enter 키를 의미 합니다.




아래 글을 보니 MATLAB 소프트웨어 단속 하나 보네요~

 

http://www.clien.net/cs2/bbs/board.php?bo_table=park&wr_id=26152226

 

위 주소의 글에 따르면 특정 교수 연구실 하나 지목해서 압수수색영장 가지고 싹 잡아서 20 카피에 54억 불렀다고 하는데~

 

한 카피당 2.7억 정도 부른건데… 제가 아는 가격보다는 한 2천정도 덜 부른 거 같네요.

 

보통 MATLAB 을 크랙으로 사용할 때는 필요한 툴박스만 사용하는 게 아니라 풀패키지를 깔게 되고~

 

풀 패키지 가격이 요즘 한 2.9 억 정도 되는 것 같던데~

 

뭐 일단 저는 대학에서 MATLAB 을 배우긴 했고 지금도 MATLAB 을 좋아하긴 하지만 대학에서 MATLAB 을 가르치는 것 자체는 반대하는 입장입니다.

 

위에 밝힌 바대로 MATLAB 은 어마어마한 비용이 들어가는 툴입니다. 정말 방대한 실용적인 툴박스들이 제공되서 편리하긴 하지만 툴 박스 하나 하나의 가격이 만만치가 않습니다. 또한 1년에 한번씩 업데이트를 위한 라이선스 유지 비용도 듭니다.

 

비싼 툴박스는 2천만원이 넘는 것도 있죠~ 가격에 대해서는 아래 글 참조바랍니다.

 

2013/11/07 - [programming language/MATLAB] - MATLAB 구매 가격에 대해 질문하는 분들을 위해…


 

암튼 대학에서 알고리즘을 공부하는데 있어서 MATLAB 을 대체할만한 오픈 소스 프로그램들은 얼마든지 있습니다.

 

제 블로그에서도 종종 소개드리는 Scilab, Octave, Freemat 과 같은 툴들이 있고~ 파이썬을 사용하는 Spyder 같은 프로그램도 있습니다.


 

http://iamaman.tistory.com/category/programming%20language/Octave



http://iamaman.tistory.com/category/programming%20language/SCILAB


 

2012/08/20 - [유틸] - MATLAB 과 유사한 Open Source 프로그램 FreeMat



2013/11/13 - [유틸] - 과학 분석에 사용되는 Python IDE Spyder



2013/11/26 - [컴퓨터일반] - ipython으로 unique 하게 sorting 하기



2014/09/05 - [programming language/Octave] - Windows OCTAVE 3.8 GUI 환경


대학에서는 이런 툴들에 대해 가르쳐야지 MATLAB 을 정식과목으로 채택하면 이건 뭐 학생들한테 크랙 사용하라는 소리 밖에 안 되지 않을까요?

 

대학에서는 MATLAB 만 가르쳐서 학생들이 MATLAB 만 사용할 줄 안다면 이건 매스웍스의 마케팅 전략에 놀아나는 꼴 밖에 안 되고~ 학생들을 MATLAB 의 노예로 만드는 꼴밖에 되지 않는다고 생각되네요.

 

대한민국이 참~~ 크랙 많이 사용하는데~ 운영체제인 윈도우부터 크랙을 사용하다 보니 MATLAB 크랙 사용하는 거야 너무나 당연한 걸로 생각하게 되는 것 같습니다.

 

우리나라가 윈도우 위주의 세상이 된 건, 생각 없는 정부의 소프트웨어 정책을 원망해야겠지만~ MATLAB 교육에 대한 결정권자들은 대학 교수들일거라고 생각되네요. 교수님들이 위에 얘기했던 MATLAB 대체 프로그램들을 적극적으로 교육해야 한다고 생각합니다.

 

지금 위에 털린 연구실 뿐만 아니라 정말 많은 연구실들이 지금도 크랙을 많이들 사용하고 있을 겁니다. 털면 다~~ 털리는거죠 뭐….

 

이제 우리나라도 소프트웨어의 라이선스 정책에 대해 심각하게 생각해 볼 때가 되지 않았나 생각합니다.

 

일단 운영체제부터 리눅스를 주로 활용할 수 있어야 하겠고~ 운영체제를 오픈 소스로 사용하다 보면 자연스럽게 소프트웨어들도 오픈 소스 또는 프리웨어에 관심을 갖게 될 것 같습니다.

 

저도 윈도우만 사용할 때 보다 리눅스를 사용하면서 정말 다양하고 좋은 오픈 소스 또는 프리웨어들에 관심을 갖게 되었고, 지금은 알고리즘을 하는데 있어서는 MATLAB 이 아니어도 딱히 불편함이 없는 상황 입니다.


 

물론 MATLAB 이 없으면 안 되는 상황에서는 MATLAB 을 사서 사용해야겠지만~~ 간단한 알고리즘 몇 개 공부하는데 MATLAB 으로 하는 건…. 파리잡는데~ 대포쏘는 것 같은 느낌이네요. Octave, Scilab 같은 프로그램을 사용할 줄 안다면 회사에서 MATLAB 에 적응하기는 매우 쉬울 걸로 생각되네요~

 

예전에는 윈도우, 오피스, MATLAB 과 같은 프로그램에 대해 대체할만한 프로그램이 없어서 어쩔 수 없었다고 하더라도… 지금은 대체할만한 오픈 소스 또는 프리웨어 프로그램들이 많습니다.

 

과연 지금 대학의 소프트웨어 교육들이 바람직한 것인지… 대학에서의 소프트웨어 교육에 대해 교수님들이 적극적으로 고민해 주셨으면 좋겠네요.


  1. ㄴㅇㄹ 2014.09.20 16:25

    블로그주인님쿨하셔요

  2. 학생요 2014.12.17 16:01

    학생용은 5만원이에요

  3. Daniel Heo 2015.08.31 01:19

    학교에서 MathWorks와 라이센스 계약을 체결해서 무료로 제공하기도 합니다. 저희도 그렇구요. 아마 매트랩 강의가 있는 학교면 거의 다 그러지 않을까 싶네요. 블로그 둘러보니 배울 것이 많은 곳이네요 ㅎㅎ 저도 요즘 드론 프로젝트 하면서 블로그 운영하고 있는데 자주 찾아오겠습니다.

    • 남성 2015.08.31 03:11 신고

      방문해 주셔서 감사합니다. ^^ 학교 컴퓨터 실에서야 당연히 라이센스 계약을 하고 사용하겠죠. 그런데 대학 연구실에서는 그렇지 않은 곳도 많은것 같습니다. 개인도 마찮가지구요. MATLAB 툴박스를 꼭 사용해야 하는것이 아니라면 학생들은 Octave, Python 등을 사용하는게 좋을것 같고 아래 주소에서 소개한 Julia 등과 같은 언어를 사용하는것도 좋을것 같네요.

      http://iamaman.tistory.com/1479

      개인적 경험으로도 MATLAB 만 사용할 때 보다는 위에서 소개한 오픈소스를 사용하면서 실력이 더 늘었다고 생각되네요.

      드론 프로젝트 하신다고 하셨는데~ 재밌겠네요! 좋은 결과 있으시길~

  4. 맷랩사용 2015.09.16 01:08

    뜬금없이 matlab알려주고 이거 알아서 깔라고한다음 그날과제에 matlab으로 푸는걸 내줌 쓰는법도모르는데

    • 남성 2015.09.16 08:18 신고

      대책이 없네요. 학생용을 사서 사용하셔도 되는데 일단 교수한테 오픈소스 사용해서 해도 되냐 물어보는게 좋을것 같네요. 방문해 주셔서 감사합니다.

  5. ㅁㄴ 2015.09.16 17:44

    저도 수업때 내준 매트랩 과제하려고 매트랩 다운받는법 찾다가 들어왔는데요
    오픈소스가 뭔가요?? 빨리 받아서 해야하는데... 답답하네요

    • 남성 2015.09.16 18:35 신고

      오픈소스에 대한 정의는 아래 주소 참조하시기 바랍니다.

      https://ko.wikipedia.org/wiki/%EC%98%A4%ED%94%88_%EC%86%8C%EC%8A%A4

      MATLAB 이 없으시면 octave 나 freemat 을 사용해 보세요. 문법이 거의 유사합니다.

      octave : http://iamaman.tistory.com/1427
      freemat : http://iamaman.tistory.com/639

  6. 공대생 2016.11.03 21:56

    형님. 저는 기계공학과에 다니는 학생인데요. 매트랩을 하려고 합니당. 요즘 회사에서도 그렇고 실무자들이 매트랩없으면 안된다고 해서요. 아직 카티아나 오토캐드밖에 못다루는데요. 요것도 해야한다고 하네요. 그런데 행님, 매트랩 학생용 에디션으로는 안되는겁니깡? octave, freemat은 오픈소스용 수치해석 툴인가요? 일단 이거 쓰고 있으면 될까요? 아니면 돈 좀 주고서라도 학생용에디션 번들까지 55$하던데 요거 얼렁 사서 책 봐야 할까요

    • 남성 2016.11.03 22:23 신고

      음 어떤 분야, 어떤 회사냐에 따라 다를것 같은데... 카티아 오토캐드 등은 기구물 디자인 할 때 쓰지 않나요? 저는 들어는 봤지만 사용해 보지도 할줄 도 모릅니다.
      어떤 분야를 하고 싶은지를 정하고 공부하시는게 좋을 듯 하네요.
      자동차 제어기용 소프트웨어를 하고 싶다면 C 를 할 줄 알아야 하고 임베디드에 대한 지식이 있어야 합니다.
      요즘 자동차 제어기는 MBD(Model Based Design) 로 가려는 추세이므로 Simulink 로 제어기 소프트웨어를 만드는 추세 입니다. 학생용 stateflow 가 있는지 모르겠지만 stateflow 를 할줄 알면 좋습니다.
      Simulink 를 사용한다고 해도 MATLAB 이 기본입니다.

      octave, Freemat 은 MATLAB 과 문법이 굉장히 유사한 툴입니다. MATLAB 스크립트에 대해 공부한다면 그냥 octave, Freemat 을 사용해도 될것 같고 MBD를 하고 싶다면 어쩔수 없이 Simulink, Stateflow 가 들어있는 학생용 MATLAB 을 사서 공부하셔야 할 겁니다.
      대학생이시면 학교 컴터실에 MATLAB, Simulink 등이 많이들 설치되어 있으므로 사용해 보시길 추천 합니다.

  7. OnDraw 2018.10.23 11:06 신고

    이렇게 배운 인력은 나가서도 매트랩을 써야 하지요...

    연구성과를 외부의 다른사람이 전달받아 쓰게 되면 그사람도 매트랩 써야 하구요

특정 파일에 다음과 같은 단어 리스트가 있는 경우 중복을 제거하고~ ABC 순서로 sorting 을 해야 하는 경우가 있습니다.

 

abacuses

abaft

abalone

abalones

abacuses

abandon

abandoned

abalones

 

한 10줄 안팎이면 노가다로 하겠지만 몇 천 몇 만 줄이 되면 노가다로 하기에는 무리가 있죠~

 

이런 경우 Perl이나 Python과 같은 스크립트 언어가 제격일 텐데요~

 

오늘은 그냥 무슨 바람이 불어서 그런지 그냥 python을 사용하고 싶더군요.

 

아래 포스팅에서 소개를 했지만 제가 요즘 Spyder 같은 툴에 매력을 느껴서 그런 것도 같습니다.


2013/11/13 - [유틸] - 과학 분석에 사용되는 Python IDE Spyder

 

어쨌든 ipython을 사용하는 방법을 검색 해보니 아래 주소에 간단하게 나오더군요.


http://stackoverflow.com/questions/2931672/what-is-the-cleanest-way-to-do-a-sort-plus-uniq-on-a-python-list

 

다음과 같이 간단하게 Unique Sorting 을 할 수 있었습니다. Set Type으로 만드니깐 간단하게 중복된 내용들이 제거되더군요.

 

fo=open("input.txt","r")

line=fo.readlines()

my_list= sorted(set(line))

fo.close()

 

fo=open("result.txt","w")

fo.writelines(my_list)

fo.close()

 

이런 게 스크립트의 매력인가 봅니다.


MATLAB 과 같이 수치 분석등의 용도로 사용 할 수 있는 프로그램들로 아래 포스팅 들에서 Scilab, Freemat, Octave 등에 대해 설명 드려었는데요.

 

오늘은 python 을 사용하는 방법에 대해 설명 드리려 합니다.

 

python 은 요즘 굉장히 많은 분들이 사용하는 스크립트 언어인데요~

 

perl 과 마찬가지로 굉장히 다양한 기능들을 추가해서 사용할 수 있고 문법도 비교적 깔끔해서 좋아하는 것 같더군요.

 

 

Python을 MATLAB 과 비슷한 용도로 사용하기 위해서는 아래포스팅에서 밝힌 바와 같이 matplotlib, scipy, numpy 같은 모듈들을 다운로드 받아서 사용해야 하는데~ 이런 과정들도 귀찬더군요.

 

물론 요즘은 아래 포스팅에서 설명했던 pip 를 이용하긴 하지만~ 그래도 이것 저것 생각 안하고 한방에 깔고 싶을 때가 많습니다.

 

또 MATLAB 과 같이 command 창에서 한 줄 한 줄 실행하면서 그 결과를 확인하고 싶을 때 python IDLE 같은 경우에는 좀 불편하더군요. 이럴때 쓸수 있는 좀더 개선된 Python shell 로서 IPython 이 있습니다.

 

이렇게 Python, matplotlib, scipy, numpy, IPython 등도 한방에 깔고 편리하게 사용할 수 있는 툴로 Spyder 에 대해 소개하려 합니다.

 

우분투/민트 같은 리눅스에서는 다음과 같이 간단하게 설치 할 수 있습니다.

sudo apt-get install spyder

 

윈도우에서는 아래 주소의 spyder 홈페이지에 가 보시면~

https://code.google.com/p/spyderlib/

 

세 가지 정도의 방법이 있더군요.

Python(x,y), WinPython, Anaconda

 

세 가지 툴에 대해 아래 포스팅에서 비교가 돼 있던데~

http://sjbyrnes.com/?page_id=67

 

Python(x,y), WinPython 은 오픈 소스이고~ Python(x,y) 는 많이 알려지긴 했지만, 32 비트 버전만 있다는 군요. WinPython 은 32/64 비트가 다 있고 포터블의 형태로 사용할 수 가 있었습니다.

 

다음으로 Anaconda 는 특별히 빅 데이터 분석에 사용되는 수학/과학 분석을 위해서 Continuum Analytics Corp. 라는 회사에서 만들어진 거라는데~ free 버전과 상용 버전이 있지만 free 버전만 설치해도 spyder 는 사용 가능하다고 합니다.

 

Anaconda 를 설치하면 CMD 창에서 conda 라는 명령어로 Ipython 같은 모듈들을 업데이트 할 수 있더군요.

http://ipython.org/install.html

 

추가로 위 주소에서는 Ipython 전용 IDE 로 Enthought Canopy 에 대해 소개하더군요. Ipython만은 사용하실 분들은 사용해 보시는 것도 좋을 것 같네요.

https://www.enthought.com/products/epd/free/

 

저는 현재 윈도우 7, 64 비트고 개인적으로 설치형 보다는 portable 버전을 선호하는 편이라~ WinPython 으로 결정했습니다.

 

WinPython 의 홈페이지는 아래와 같고~

https://code.google.com/p/winpython/

 

아래 페이지에서 사용하고자 하는 버전을 다운로드 해서 설치하시면 됩니다. 제 경우 다운로드는 약간 느리네요.

https://code.google.com/p/winpython/downloads/list

 

저는 아래 그림과 같이 Python 2.7, 64 bits 버전을 다운로드 받았습니다.

 

설치는 다운로드 받은 exe 파일을 더블 클릭하면 되고, 압축 해제하려는 폴더만 설정해 주면 끝입니다.

 

압축 해제후에 폴더를 보시면~ 다음 목록과 같은 실행 파일들이 만들어 지고~

 

TortoiseHg, Qt Linguist, IPython Qt Console, IPython Notebook, WinPython Interpreter, WinPython Control Panel, WinPython Command Prompt, Spyder (light), Spyder, Qt Designer, Qt Demo, Qt Assistant

 

이 중에서 Spyder.exe 파일을 실행하면 Spyder 가 아래 그림과 같이 실행 됩니다.

 

Spyder (light).exe 에는 간단하게 Console 만 나오더군요.

 

Spyder의 화면은 보시는 바와 같이 Console, Editor, Object inspector 등으로 구성되어 있고~ 메뉴들로 구성되어 있습니다.

 

저는 일단 Editor 에서 바로 실행할 수 있다는 점과 생소한 언어를 배울 때 가장 유용한 도구인 Help 가 그냥 타이핑과 함께 나온다는게 가장 좋더군요.

 

아래 그림과 같이 Console에 fft( 까지만 타이핑해도~ Object inspector에 아래 그림과 같이 자동으로 매뉴얼이 짜잔~~ 하고 뜨더군요.

 

뭐 소개만 하고 그냥 가면 좀 거시기 하니깐 간단하게 그래프 하나 그려볼까요~

 

에디터에 다음과 같이 코딩하고~ 저장한 후에 F5 를 눌러서 실행 했습니다.

 

A=rand(10,1);

B=fft(A);

plot(abs(B))

 

 

 

결과로 이런 그래프가 나오더군요.

 

신기한 건 위 코드에서 numpy 등을 import 를 안 했는데도 Spyder 환경 내에서는 자동으로 import 가 되는 것 같더군요.

 

좀 더 볼 주소들


http://quant-econ.net/


http://sjbyrnes.com/?page_id=67




+ Recent posts