이번 달부터 Python을 심각하게 익히고 있다. 그동안 시스템 프로그래밍, 웹, 분석 등 여러 목적에 두루 쓰면서 너무 복잡하지 않는 언어를 찾다가 Python으로 삼기로 했다. C, JAVA, R 언어와도 어렵지 않게 연결될 수 있다고 하고. 혼자서도 여러 목적의 쓰임새를 숙달할 수 있을 것 같다. 익숙해지지 않는 PHP+HTML 섞기, SQL이 프로그램처럼 구는 것을 않보며 살면 좋겠다.
R vs. Python : Data Science에 R이 낫나 Python이 나은가? 웹에 많은 말들이 있는데 다 맞다. 각자의 경험, 배경, 그리고 앞으로의 목적에 따라 의견이 다를 것이다. 내 경험으론 R의 강점은 빨리 익혀 사용할 수가 있다는 것과 많은 library에 있다. R의 상대적 단점이자 Python의 장점은 Python이 general purpose 언어이기에 활용성이 자유롭고 production system 만들기와 스케일업에 유리하다는 것이다. 언어로써 Python은 R과 비교가 안되게 완전하고 일관성있는 언어다. 나의 배경과 목적이 어떤 일을 할 수 있는 방법을 생각해내면 이를 자동화하는 것이기에 Python이 유리하다.
느긋하게, 처음으로 말을 배운다는 생각으로 Python을 대한다. Python에 대해 지금껏 많은 사람들이 말한 말이 옳다. Python이 처음 프로그래밍을 배우는 사람들에게 좋다고 하지만, 여러 언어를 거치고 온 사람에게도 편안함을 준다. 여러 언어에서 유용하다고 검증된 핵심 구조를 최대한 단순하게 쓸 수 있도록 한 것 같다. 프로그래머들이 온 갖 사고를 치는 물건이라는 생각으로 지나치게 친절한/복잡한/defensive한 구조를 배제하고. "We are all consenting adults, here" 이 말/철학을 공감한다.
오늘은 IPython을 익히고 있다.
현재 Anaconda 3 (Python3.4.3) 가 root environment, 그리고 Python 2.7로 된 또 다른 Anaconda environment를 쓰고 있다. 둘 다 32bit Windows 7 에서. IDE로는 PyCharm Community Edition을 익히고 있다. 언어와 Tool Stack을 동시에 익히려니 좀 힘들다. Linux에서는 64 bit를 쓰려고 한다.
설치 참고 : http://conda.pydata.org/docs/get-started.html
PyCharm 의 Python Console Prompt가 일반 python prompt '>>>' 와 달라 이게 무시기 인지 보니 바로 그동안 글로만 접했던 IPython이란다. 그리고 보니 이 녀석이 로드될때 그 과정에도 나와있다.
여기에 (http://ipython-books.github.io/minibook/)에 나와있는 과정을 Pycharm 의 console과 terminal 에서 따라가고 있다.
해보니, Pycharm의 프로젝트가 Anaconda3을 쓰면, 그 때 IPython도 같은 interpreter를 쓴다. 도중에 Pycharm 프로젝트를 Anaconda 2 로 바꾸어도 Ipython은 그대로 Python 3를 쓴다. 물론 terminal shell에서 'activate python27'과 같이 해 environment를 Python 2.7로 바꾸고 다시 IPython을 띄우면 되지만.
IPython 내에서 Interpreter를 바꾸는 것이 가능한가?
IPython Notebook이 이런 것이었구나...
'Learning & Reasoning > Python - Scikit-learn_Tensorflow' 카테고리의 다른 글
ISLR - Introduction to Statiscal Learning with application in R - 에 부쳐 (0) | 2016.10.21 |
---|---|
Python Numpy 단편 - 1D array를 2D array의 vector로 변환 (0) | 2016.09.30 |
Python Pandas 단편 (notes) (0) | 2016.09.29 |
IPython/Jupyter Notebook 단편 (notes) (0) | 2016.09.29 |
Semantic/Frame Net (0) | 2016.05.27 |