본문 바로가기
자료분석 및 코딩/파이썬

[파이썬] 1. 파이썬을 활용한 해양자료 분석을 시작하며

by 아다콘다 2023. 3. 21.

  나는 본격적으로 파이썬을 시작한지 이제 겨우 1년정도 지난 파린이다. 코딩은 아직 걸음마 수준이고, 아직도 매트랩이 편할 정도로 실력은 미천하다. 하지만 이로 인해 파이썬 초보자나 매트랩에 익숙한 학생들의 고충을 누구보다 잘 이해할 수 있고, 그들의 눈높이에 적합한 수준으로 파이썬을 설명할 수 있다고 생각한다. 물론 아직 미천한 실력이지만 나와 같은 사람들이 겁먹지 않고 하루 빨리 파이썬에 적응하는데 도움이 되었으면 좋겠다.

자료분석 툴 - 매트랩과 파이썬
자료분석 툴 - 매트랩과 파이썬

 

1. 파이썬을 시작해야하는 이유

1.1 파이썬은 무료다

 요즘도 그런지는 모르겠지만, 내가 학생일때는 분석관련 수업에서 matlab을 사용했다. 따로 운영하는 네이* 블로그에 매트랩 관련 질문이 많이 오는걸 보면 학교에서는 아직도 매트랩을 많이 사용하고 있는 것 같다. 물론 매트랩은 파이썬 및 다른 언어들에 비해 정말 쉽게 배울 수 있는 프로그램이며, 대부분 학교에 무료로 제공되므로 학생들이 처음 자료분석을 배우기에 최적화된, 기능 또한 정말 강력한 프로그램이긴하다.

 

 하지만 매트랩은 한계점이 너무나도 명확한데, 바로 유료 프로그램인 점이다. 학교를 졸업하는 순간, 일반 기업을 가든, 공공기관 또는 연구기관에 가든 매트랩의 활용성은 매우 떨어지게 된다. 물론 계속 학교에 남아 연구를 하거나, 연구비가 정말 빵빵한 기관에 들어간다면 계속해서 매트랩을 사용할 수 있지만, 같이 협업하게 될 사람들, 본인이 감독해야할 프로젝트들에서는 아마도 대부분 파이썬 또는 오픈소스를 사용할 것이다. 따라서, 미래에도 계속해서 분석툴을 사용할 것이라면 하루빨리 파이썬 또는 오픈소스의 언어를 시작하는 편이 좋다.

 

 나는 거의 반 강제적으로 파이썬을 시작하게 되었다. 아마 나처럼 일반 기업에 종사하고 있는 사람들이라면 대부분 비슷한 이유로 파이썬을 시작할텐데, 회사에 매트랩이 없다...... 몇천만원씩 하는 소프트웨어를 중소기업에서 나를 위해 구입해줄리 만무하다. 그래도 난 불행인지 다행인지 박사과정때의 mathworks 계정이 남아있어서 개인PC로 매트랩을 사용할 수 있었다. '내년에는 꼭 파이썬으로 갈아타야지' 하고 매해 다짐을 해보지만,,, 일단 익숙한 매트랩을 벗어나는 것 자체가 힘들고, 무엇보다 당장 처리할 업무가 있다보니, 파이썬에 적응하는게 쉽지 않았다. 그렇게... 3년을 넘게 미뤄왔는데... 올해 mathworks의 내 학생계정이 만료되었다. 그래서 어쩔 수 없이 반강제적으로 파이썬을 사용하게 되었다. 아무리 파이썬이 어렵다고 해도 회사에서 크랙버전을 쓸 수는 없으니말이다.

 

1.2 생각보다 어렵지 않다

 석박과정 내내 그리고 회사에 와서도 작년까지 매트랩만 사용해온 나에게 파이썬 및 shell 언어들은 정말 너무나도 어려웠다. 큰 틀에서 보면 매트랩이나 파이썬이나 큰 차이가 없는 것처럼 보이지만 그건 파이썬을 꽤나 다룰줄 알게 된 이후에나 느낄수 있는 생각이고, 처음 사용하는 사람의 입장에서 두 언어는 완벽하게 다른 언어처럼 느껴진다. 그래서 매년 공부를 시작했다가 미루고 시작했다가 미루고를 반복했지만, 시작이 어렵지, 한번 쓰기 시작하니 매트랩이랑 큰 차이가 없는 것 같다. 물론, 내가 매우 복잡한 연산이나 코딩을 하는게 아니라, 엑셀정도 수준의 자료분석을 하기 때문이기도 하지만 어쨋든 컴퓨터 언어 자체가 큰틀에서 매우 유사하기 때문에 처음 한 달 정도만 적응하고 나면 더 편리한 세상이 열리게 된다.

 

  매트랩을 쓰던 사람이 파이썬 적응이 쉽지 않은 이유에는 몇가지가 있다. 가장 큰 이유는 매트랩은 수치 해석을 위한 공학용 소프트웨어로 연산 및 데이터분석에 포커싱된 프로그램인 반면, 파이썬은 특정 분야에 한정되지 않는 광범위한 프로그래밍 언어다. 때문에 파이썬은 매우 광범위한 function 및 tool들이 있고, 각각의 function을 활용하려면 개별 라이브러리를 불러와서 사용해야한다. 이에 반해 매트랩은 자료분석과 관련된 대부분의 function이 내장되어있다. 그래서 초보자가 사용하기에 매우 편리하다. 예를 들어, 어떤 엑셀파일을 불러온다고 가정해보자. 매트랩은 textscan이나 csvread같은 내장 함수를 사용해서 읽으면 되지만 파이썬에서는 내장함수로 읽을수도 있고, pandas패키지를 이용할 수도 있고, 그 외의 패키지를 이용할 수도 있다. 따라서, 어떤 패키지를 써야할지, 어떤 명령어를 써야할지부터 감이 잘 안서게된다. 이 내가 사용하려는 연산은 어떤 패키지, 어떤 function을 써야하는지 모든걸 검색해서 찾아봐야하기 때문에 적응이 쉽지 않다. 물론 한달이면 본인이 자주 사용하는 패키지와 펑션들이 생기면서 금방 해결되는 문제이며, 이 광범위한 패키지와 기능들이 파이썬의 가장 큰 장점이기도 하다.

  또한, 언어 입력 방식이 아주 살짝 상이하다. 예를들어 행렬을 지정할 때 사용하는 괄호'()' '[]'라던지, 숫자열을 지정하는 방식이 조금씩 다르다. 매트랩에서는 행렬의 범위를 지정할 때 A(1:5)와 같이 입력하지만 파이썬에서는 A[0:5]처럼 기본적으로 [ ] 대괄호를 사용한다. 또한, 매트랩은 숫자를 1부터 시작하지만 파이썬은 0부터 시작하며, 매트랩은 (1:5)가 첫번째 데이터부터 다섯번째 데이터를 의미하지만, 파이썬에서는 [0:5]과 같이 표기하고, 행렬의 마지막 데이터를  지정하는 방법도 'end'와 '-1'로 상이하다. 그 외에도 double, list, tuple 등과 같은 자료의 형식이라던지 for문이나 if문을 쓰는 형식 등등 이런 소소한 부분이 다르기 때문에 적지않게 헷갈리긴 한다.

 

  하지만 이러한 부분은 파이썬에 적응을 마치는 순간 전혀, 문제가 되지 않으며, 적응하는데도 그리 오래걸리지 않는다. 자꾸 어렵다고 생각하고 안써서 그렇지, 억지로라도 사용을 하기 시작하면 1주일에서 한달이면 충분히 적응할 수 있을 것이다. 적응만 마치면 파이썬은 생각보다 어렵지 않게 느껴지게 된다. 경험상 느낀 매트랩에서 파이썬으로 갈아타는 가장 빠른 길은... 매트랩 삭제...인 것 같다.

1.3 정말 강력한 대세 언어다

  파이썬은 정말 많은 사람들이 사용한다. 아래의 그림에 2022년의 컴퓨터언어 점유율 순위를 퍼왔는데, 2021년부터 굳건한 1위를 지키고 있다(매트랩은 저 밑의 14위에 랭크되어 있다). 물론 이 점유율은 자료분석외에 개발과 관련된 모든 분야의 점유율이므로 큰 의미가 없을수도 있지만 어쨋든 그만큼 많은 사람들이 사용하는 언어이다.

2022년 컴퓨터언어 점유율 순위
2022년 컴퓨터언어 점유율 순위

  사용자가 많다는 건 그만큼 많은 사람들에게 도움을 받을 수 있다는 말이다. 사실, 웬만한 자료분석은 매트랩으로도 충분하지만 파이썬은 내가 하려는 모든 분석 코드가 온라인상에서 공유되어 있다고 느낄 정도로 정보가 많고, 관련 커뮤니티가 활성화 되어 있다. 적당한 검색실력(물론 영문)만 갖추면 'CTRL+C/V'만으로도 분석을 할 수 있을 정도다.

 

 오늘은 파이썬 시작을 주저하는 해양학도 및 해양실무자들을 위해 파이썬에 대해 간략히 적어보았다. 어쨋든 결론은 그리 어렵지 않다는 점이다. 매트랩이나 다른 분석툴에 이미 적응을 마친 사람이라면, 이미 어느 정도 분석에 대한 코딩 감은 경험을 통해 갖췄을 것이고, 파이썬에 적응하는 것도 오래 걸리진 않을 것 같다. 아마도 매트랩 적응에 걸렸던 시간의 반도 안걸릴 것이다. 따라서, 너무 겁먹지말고 일단 하루빨리 시작하는 것을 추천한다.

반응형