반응형

프로그래밍/python 38

데이터 시각화를 위한 파이썬 matplotlib

데이터를 시각화하는 도구로는 matlab이 유명하지만 유료라는 점이.. 그리고 가격도 개인이 사용하기에는 너무 비싸다. 무료를 찾는 다면 당연히 파이썬의 matplotlib를 고려할 것이다. 파이썬은 거의 모든 분야에서 활용이 가능한 범용언어라는 이점이 있고 쉬운 문법과 정말 셀수 없이 수많은 라이브러리의 빵빵한 지원이 있다. 파이썬 문법만 익혀놓으면 다양한 분야(인공지능, 빅데이터, 웹, 수학, 과학 등..)와 데이터 분석을 점목시키기에 안성맞춤인 셈이다. 데이터 시각화를 위한 라이브러리 matplotlib를 사용하려면 아나콘다를 설치하기를 추천한다. 아나콘다는 기존의 파이썬 + matplotlib + 수학,과학을 위한 라이브러리들을 묶어 배포하는 파이썬이다. 파이썬과 matplotlib 등의 라이브러..

파이썬 아나콘다(anaconda) 설치와 파이썬 버전 바꾸기

파이썬을 어느 정도 활용하고 싶다는 생각이 들면 파이썬 아나콘다를 설치하길 권한다. 공식 파이썬 사이트에서 배포하는 파이썬과 아나콘다(anaconda)의 차이점은 튜닝 전 차와 튜닝 후 차로 비유할 수 있다. 아나콘다는 수학, 과학 분야의 패키지로 튜닝한 파이썬으로 수학, 과학 분야에서 필요한 거의 모든 패키지들(Numpy, SciPy, IPython, Matplotlib, 등)이 포함되어 있다. 정식 파이썬을 설치한 후 일일이 필요한 라이브러리를 추가로 설치하는 것은 의존성 문제나 설치의 번거로움 등으로 짜증날 수 있기 때문에 용량은 조금 더 크지만 아나콘다를 설치하는 것이 정신건강상 이롭다. 최근에는 인공지능이나 데이터 분석을 위해 파이썬을 많이 사용하는데 베이스로 아나콘다(anaconda)를 설치하..

파이썬으로 바이너리(binary) 파일을 텍스트(text) 파일로 바꾸는 방법

텍스트(Text) 파일(아스키(ascii 파일이라고도 함)과 바이너리(Binary) 파일에 대한 내용은 C언어 포인터와 같이 진부한 주제 중에 하나라고 생각한다. 그럼에도 일반적으로 그다지 중요하지 않게 다루는 것 같은 느낌이 든다. 바이너리와 텍스트의 차이점을 설명하는 많은 글들이 있음에도 그 내용을 명확하게 이해하기 힘들 수 있다. 사실 대단히 단순한 사실인데 말이다. 사실 바이너리(Binary)라고 하면 실행파일을 말할 때가 많다. 텍스트(Text)라고 하면 문서파일이다. 그러나 리눅스에서는 텍스트 파일이라는 개념이 바이너리와 다른 것이 아니다. 그렇다면 윈도우에서는 서로 다른가? 어디서 부터 잘못된 것일까?윈도우에서는 텍스트 파일과 바이너리 파일이 분명히 구분된다. 어떤 차이냐면 저장방식의 차이다..

파이썬 openpyxl로 엑셀 파일 읽기, 쓰기

VBA(Visual Basic for Application)이라고 들어봤을 것이다. 마이크로 소프트사의 오피스제품군의 응용프로그램을 개발하기 위해 보통 VBA를 많이 사용하는데 파이썬으로도 가능하다. 파이썬으로 엑셀을 다루는 대표적인 방법은 win32com과 openpyxl이다. 어떤게 좋을까 비교하다가 결국 openpyxl로 기울어 졌다. 이유는 Tutorial.. win32com은 자세한 Tutorial을 찾을 수 없었다. 반면에 openpyxl은 다음 사이트 https://openpyxl.readthedocs.io/en/default/index.html 에 아주 잘 정리되어 있다. 설치 방법도 나와있는데 귀찮다면 공식 파이썬 대신 아나콘다(Anaconda)를 설치하면 된다. 아나콘다는 win32co..

파이썬(python) 네임드튜플(namedtuple)을 사용해 보자

파이썬의 자료형 중에 네임드튜플(namedtuple)이란 녀석이 있다. 말 그대로 튜플의 성질을 가졌지만 항목에 이름으로 접근이 가능하다. 튜플은 항목에 인덱스(index)로 접근하므로 직관적이지 않다. 튜플의 방식 mytule[0], mytuple[1], .. 이렇게 하면 0번째, 1번째 항목에 대한 정보를 구체적으로 알 수 없다. 하지만 네임드튜플은 mytuple.age, mytuple.birth, 와 같이 사용자가 항목에 이름을 붙여 사용할 수 있다. (물론 인덱스(index)로도 항목에 접근 가능하다.) 그럼 네임드 튜플을 어떻게 사용하는지 살펴보자. from collections import namedtuple네이드 튜플은 기본 자료형이 아니다. collections 이 제공해주는 namedtu..

파이썬 가위바위보 알고리즘

가위바위보 문제를 해결하는 방법은 여러가지가 있습니다. 하지만 그 근본은 가위, 바위, 보 각각을 숫자로 매핑해서 대소를 비교하는 것입니다. 대소를 비교하는 방법은 너무 다양해서 딱히 어떤 방식이 가장 좋다고 볼 수 없습니다. 비교 가지수도 9가지 뿐이므로 모든 경우를 다 비교하는 것도 어렵지 안고 효율성도 나쁘지 않습니다. 가위를 1로 두고 바위(2), 보(3) 이렇게 숫자로 매핑하면 됩니다. 매핑은 파이썬 사전을 사용하면 됩니다.(아래 코드 참조) 여러명이 가위바위보 게임을 할 수도 있겠지만 여기서는 컴퓨터와 나, 이렇게 둘이서 게임을 하는 프로그램을 작성합니다. 다음은 모든 경우를 비교하는 방법을 사용해서 컴퓨터와 가위바위보를 하는 코드입니다. 파이썬 아나콘다 3.5.2를 사용했고 IDLE 상에서 ..

파이썬으로 로또 번호 생성기 만들기

로또 번호를 생성하기 위해 난수를 발생시켜야 합니다. 파이썬 난수에 관한 모듈은 random 모듈 입니다. 이 모듈 내부에 Random 클래스가 존재하고 메르센 트위스터 생성기를 사용하여 난수를 생성합니다. random 모듈을 import 하면 Random클래스의 객체가 _inst라는 이름으로 생성되고 내부의 멤버 함수들이 멤버함수이름 = _inst.멤버함수이름 이라는 형식으로 바인딩됩니다. 예를들어 random.random은 random._inst.random를 바인딩한 함수라고 표현할 수 있습니다. 2017/04/23 - [프로그래밍/python] - 파이썬 랜덤(random) 모듈로 난수 생성하기 어찌되었건 random모듈에 대한 구체적인 사용법은 위 링크를 참조하고 간단한 로또 번호 생성기를 만들..

파이썬 랜덤(random) 모듈로 난수 생성하기

랜덤한 숫자를 뽑아내는 알고리즘은 프로그래머가 따로 만들 필요가 없습니다. 파이썬의 경우는 random모듈을 사용해서 랜덤한 수를 뽑아낼 수 있는데 여기에 사용되는 알고리즘 엔진은 메르센 트위스터(Mersenne Twister) 생성기라는 것입니다. 임의의 값을 뽑아내는 데 이 생성기를 많이 사용하죠. 이것을 의사난수 생성기(Pseudo-random)이라고 하는데 의사라는 말은 가짜라는 뜻으로 추측이 가능하다는 말입니다. 가짜라고 해서 품질이 나쁜건 아닙니다. 메르센 트위스터는 품질이 좋은 의사난수를 생성해 내며 사용자 입장에서는 정말 난수처럼 보입니다. 단지 엄밀히 따지자면 수학적인 계산을 통해서 만들어진 수이므로 f:x->y 처럼 함수관계가 있다는 것 뿐입니다. 저도 잘은 모르지만 난수를 생성하는 엔..

파이썬 tkinter에서 쓰레드를 사용하려면

tkinter에서 쓰레드를 사용하려면 tkinter가 어떻게 동작하는지 어느 정도 이해가 필요합니다. 우선 tkinter 프로그램을 실행하면 메인 쓰레드에서 GUI로 동작하게 될 객체의 mainloop를 호출해야 합니다. 이 호출로 인해 메인 쓰레드에서의 코드는 더 이상 실행되지 않고 멈추게 되면서 새로운 쓰레드가 시작되어 이벤트 루프와 GUI의 update가 계속 진행됩니다. 우리가 보통 프로그램을 실행할 때 보이는 단추나 텍스트 등이 보이면서 사용자의 입력에 반응하는 것이죠. 사용자가 프로그램 닫기 단추를 누르면 이 루프가 종료되면 메인쓰레드의 코드가 다시 진행되게 됩니다. 이 후의 코드가 있다면 실행되겠죠. 프로그램 실행 중에는 버튼이 눌리면 해당 리스너가 호출되고, GUI 요소를 옮기거나 하면 새..

PYINSTALLER로 파이썬 실행파일 만들기

파이썬으로 만든 파일은 py라는 확장자를 가진 스크립트 파일이다. 이 파일을 실행시킬 때는 반드시 시스템에 해당 버전에 맞는 파이썬이 설치되어 있어야 한다. 따라서 배포를 목적으로 파이썬으로 프로그램을 만들기 위해서는 py2exe와 같은 유틸리티가 필요하다. py2exe는 파이썬2 문법으로 만든 파이썬 파일을 실행파일(exe)로 만들어준다. 파이썬3 문법으로 만들었다면 py2exe를 사용할 수 없다. 대신 pyinstaller를 사용하면 된다.(윈도우즈 환경에만 해당) 기본적인 사항py확장자를 가진 스크립트 파일의 용량을 살펴보면 1MB를 넘는 파일은 드물다. 하지만 exe파일로 바꿔놓고 나면 아주 작은 녀석의 경우도 10MB정도 될 것이다. 이것은 파이썬 파일을 실행파일(exe)로 만들 때 파이썬이 설..

반응형