Programming
[Python] AttributeError: Module 'PyQt5' has no attribute '__version__' 대처 방법
상황 친구의 부탁으로 Python을 활용한 이미지 인식 프로그램을 만드는 도중 해당 에러가 발생 anaconda prompt 환경에서 pyinstaller를 활용하여 .py 파일을 .exe 실행 파일로 만드는 과정에서 발생한 에러 pyautogui 패키지를 활용하는 코드가 에러의 원인일 것으로 추정 --------------------------------------------------------------------------- ... ... AttributeError: Module 'PyQt5' has no attribute '__version__' 해결 방안 아래의 코드를 Jupyter Notebook 환경에서 실행 후 다시 pyinstaller를 실행하면 에러가 해결될 것입니다. !pip ins..
[Algorithm] 이분탐색, Binary Search
[프로그래머스 > 코딩테스트 연습 > 이분탐색 > 입국심사] 문제에 활용됨 이분탐색 (Binary Search) 다양한 탐색 기법중 하나로 탐색 범위를 절반으로 줄여가며 찾아가는 탐색방법임 순차탐색처럼 전부 탐색하는 것이 아니라서 비교적 탐색 속도가 빠름 특징으로는 left, right, mid 값을 활용하여 탐색한다는 점이 있음 이분탐색 조건 이분 탐색을 하고자하는 대상(배열)은 정렬되어있어야 함 알고리즘 순서 left, right를 설정해준다. mid를 left와 right의 중간으로 설정한다. mid와 찾고자 하는 값과의 대소 관계에 따라 left 혹은 right 값을 조정해준다. mid 찾고자하는 값 이면 right 를 mid-..
[Programming] 언어와 툴의 사전적 의미 차이
프로그래밍 언어? 툴? 누군가 프로그램이 언어와 툴을 혼동하여 사용하고 있는 상황을 목격하였고 나는 그 둘의 차이에 대해서 바로 설명해주지 못한 경험이 있다. 하지만 언어와 툴은 혼동하여 사용하면 소통이 부정확해질 수 있다. 그러므로 차이점을 명확히 설명해두는 것이 좋겠다고 판단하여 이 글에서는 프로그래밍에서 말하는 언어와 툴의 차이점을 정리해보았다. 프로그래밍 언어와 툴의 사전적 정의 프로그래밍 언어 프로그래밍 언어는 컴퓨터 시스템을 구동시키는 소프트웨어를 작성하기 위한 형식언어이다. 고급 언어일수록 사람이 사용하는 언어에 가깝다. - 위키백과 프로그래밍 툴 프로그래밍 도구(programming tool) 또는 소프트웨어 도구(software tool)는 소프트웨어 개발자가 다른 프로그램과 응용 프로그..
[Python] 공공데이터 오픈 API를 활용한 기상청 ASOS 데이터 파싱하기
* 해당 글은 본인 스스로 정리하는 글이며 자세한 과정에 대해서는 다루고 있지 않음. 공공데이터 공공데이터 포털에서는 국가 보유 데이터를 『공공데이터의 제공 및 이용 활성화에 관한 법률(제11956호)』에 따라 개방 중이며 공공데이터(Dataset)와 Open API로 제공하고 있다. 공공데이터 (Dataset) 일일이 내려받기를 통해 다운로드 가능하다. 파일 안에 자료가 정해져 있기 때문에 일단 내려받은 후 필요한 데이터만 가공하여 사용 가능하다. 활용 신청 과정이 불필요하므로 내려받기가 간편하다. 아무래도 일일이 다운받다가 착각으로 인한 실수(?)를 할 가능성이 존재한다. 공공데이터 Open API Open API란? 누구나 사용할 수 있도록 공개된 API(Open Application Program..
함수(Function)와 메소드(Method)의 차이
함수(Function)와 메소드(Method)라는 단어를 상황에 맞게 잘 선택하기 위해 두 단어 간의 차이에 대해서 짚고 넘어가려 한다. 우선 함수는 여러 문장들이 하나의 기능을 구현하도록 구성한 것이라고 할 수 있다. 그 함수 중에서 클래스 내부에 정의한 함수를 메소드라고 부르는 것이다. 또한 메소드는 객체의 속성을 다루기 위한 행위를 정의한 것이라는 의미도 포함하고 있다. 즉, 독립적으로 존재하는 함수이냐, 클래스 내부에 종속되어 있느냐의 구분으로 함수와 메소드를 구분할 수 있다.
[R] 간단한 메타분석 예제 코드 - 두 집단 (사후검사)
두 집단 (사후검사) 비교의 경우 데이터 로드 # 메타분석 install.packages("meta") install.packages("metafor") library(meta) library(metafor) # 두 집단(사후검사) # 자아존중감에 대한 멘토링 데이터 mentoring
[Python] 유용한 문자열 함수들
※ 해당 글은 dojang.io/mod/page/view.php?id=2299을 참고하여 작성하였습니다. 저의 기준 사용 빈도가 높은 함수들 replace >>> 'sample setence'.replace(' ','_') 'sample_setence' split >>> 'sample one two three four five'.split() ['sample', 'one', 'two', 'three', 'four', 'five'] >>> 'one, two, three, four, five'.split(', ') ['one', 'two', 'three', 'four', 'five'] join >>> ' '.join(['one','two','three','four','five']) 'one two three..
[Python] 2차원 리스트를 1차원 리스트로 만들기
코드 2차원 리스트 >>> list_ = [] >>> for i in range(4) : >>> list_.append([j for j in range(i)]) >>> list_ [[], [0], [0, 1], [0, 1, 2]] 1차원 리스트로 만드는 방법들 방법 1 - sum 함수 >>> answer = sum(list_, []) [0, 0, 1, 0, 1, 2] 방법 2 - itertools.chain >>> import itertools >>> list(itertools.chain.from_iterable(list_)) [0, 0, 1, 0, 1, 2] 방법 3 - itertools와 unpacking >>> import itertools >>> list(itertools.chain(*list_)..
[R] createWorkbook 함수를 이용해 데이터프레임 변수를 엑셀에 저장하기
코드 1. Workbook 생성 및 엑셀 시트 추가하기. # createWorkbook # install.packages('openxlsx') library(openxlsx) example
[Python] 병렬처리, Multiprocessing
병렬처리의 필요성 요즘같이 대용량 데이터를 처리하는 과정에서 병렬처리 활용은 선택이 아닌 필수가 되어버렸다. 극단적으로 말하자면 코드를 어떻게 짜느냐에 따라 똑같은 작업이라도 1시간이 걸릴 수 있고, 단 1초 만에 완료될 수 도 있다. 코드를 돌려놓고 하염없이 기다리기보다 병렬처리를 배워서 적용하는 시간이 오히려 더 빠르다. 그리고 추후에도 잘 응용하여 사용함으로써 데이터 분석가의 역량을 키워 나갈 수 있다. 하드웨어가 심각하게 싸지지 않는 한 앞으로 더더욱 연산속도와 메모리 관리는 중요한 이슈가 될 것이라고 생각한다. Multiprocessing multiprocessing 모듈은 threading 모듈과 유사한 API를 사용하여 *프로세스 스포닝(spawning)을 지원하는 패키지이다. multipr..