프로그래밍 Programming
주피터노트북 디렉토리 이동 명령어 Built-in magic commands %cd
2020. 3. 15.%cd 를 이용하여 주피터 노트북에서 현재 디렉토리를 다른 경로로 변경할 수 있다. 위 명령어는 IPython 세션 동안 여러분이 방문 디렉토리를 내부적으로 보관하고 있게 된다. 그리고 %dhist 를 통해 디렉토리 방문이력을 확인할 수 있다. %dhist Directory history (kept in _dh) 0: /home/founder/annam/kaggle 1: /home/founder/annam 2: /home/founder 3: /home/founder/annam/kaggle 4: /home/founder/annam/kaggle/input 5: /home/founder/annam/kaggle 6: /home/founder/annam 7: /home/founder 8: /home/founder..
초보자를 위한 리눅스 tree 명령어 사용법 Linux ‘tree Command’ Usage Examples for Beginners
2020. 3. 15.Photo by Johannes Plenio from Pexels tree 는 디렉토리를 리스팅하거나 컨텐츠 내용을 볼 때 사용할 수 있는 간단한 명령어이다. 디렉토리 경로와 서브디렉토리내의 파일, 그리고 서브디렉토리와 파일의 전체 갯수 등을 보여준다. tree 프로그램은 리눅스, 도스, 윈도우즈 등 다양한 운영체제에서 사용가능하지만 여기서는 리눅스 환경에서의 활용에 대해 살펴본다. 본격적인 사용에 앞서 해당 라이브러리부터 설치해보자. (AnnaM) founder@hilbert:~/annam/kaggle$ sudo apt install tree Reading package lists... Done Building dependency tree Reading state information... Done T..
주피터 노트북 셀 실행결과 구글시트나 엑셀로 복사하기 How to copy/paste a dataframe from iPython into Google Sheets or Excel?
2020. 3. 15.Photo by bongkarn thanyakij from Pexels 주피터 노트북 사용시 셀 실행결과로 나온 테이블 등을 엑셀 등에 복사하고자하는 경우, 다음과 같이 테이블 형태로 들어가지 않는 경우 처리방법에 대해 알아보자. 주피터 노트북은 크롬 등의 브라우저에서 구동이 되므로, 셀을 복사하고 클립보드에 붙여넣는 자바스크립트를 만들 수 있다. 다음의 자바스크립트를 크롬 등의 북마크에 저장하고 노트북이 구동되는 페이지에서 실행하면 된다. 아래를 보자. javascript:(function%20()%20%7B%20function%20SelectText(element)%20%7B%20var%20range%3B%20var%20selection%3B%20if%20(document.body.createText..
신경망의 기본 구조
2020. 3. 5.유닛의 특징 유닛은 단순하게 추상화한 뉴런이다. 유닛은 연산기능이 있으므로, 출력이 다수라도 출력값은 0 또는 1 이다. 유닛은 가중치를 포함한 입력으로 정리된다 Z=W1X1+W2X2+...+WnXn+B (W1, W2, ..., Wn 은 가중치, B는 편향, n은 입력수) 유닛은 가중치를 포함하는 입력 z 를 매개변수로 사용하는 활성화함수(전달함수)이며 y 를 출력한다. y=a(z) 활성화함수 - 사용자가 정의 출력값 y - 활성화함수를 사용할 수 있는 임의의 수 출력신호해석 - 유닛의 흥분도, 반응도, 활성도 신경망의 기본구조 층을 겹겹이 쌓은 신경망. 층을 쌓는 방법에 따라 다양한 방법이 있음 필기체 숫자 식별 신경망의 특징은 입력층의 유닛 전부가 중간층의 유닛 전부에(완전연결계층 fully conn..
Dash and Plotly 를 활용한 인터랙티브 시각화 Interactive Visualization with Dash and Plotly
2020. 3. 4.인터랙티브 데이터 시각화는 실험 데이터 분석에 중요한 역할을 한다. 데이터셋에 기술적 또는 예측적 알고리즘을 적용하기에 앞서, 특성간 연관성이 어떤지 그리고 내부적으로 어떻게 분포되어 있는지 파악하는 것이 중요하다. 이를 위해 수많은 시각화 라이브러리가 수많은 형태의 차트를 제공하고 있지만, 분명한 점은 각각의 속성에 대해 매번 차트 작업을 하고, 해당 챠트를 다른 특성과 매번 서로 비교하는 작업은 결코 간단하지는 않다는 것이다. 이러한 고민을 해결해주는 2가지 라이브러리가 있는데, 인터랙티브 시각화를 제공해주는 Plotly.py 와 웹기반 파이썬 어플리케이션의 프레임워크를 제공해주는 Dash 가 바로 그것이다. 이하 그 사용법에 대해 알아보자. Dash Installation 먼저 예제 실행에 필요한 ..
꼭 알아둬야할 4가지 놀라운 파이썬 트릭 4 Uncommon Python Tricks You Should Learn
2020. 2. 15.Photo by Suzy Hazelwood from Pexels 1. Multiple Assignment 다수의 변수에 동일한 값을 줘야할 때, 종종 아래와 같이 변수 각각에 대해 값을 부여하는 것을 볼 수 있다. >>> a = 1 >>> b = 1 >>> c = 1 >>> print(a) 1 >>> print(b) 1 >>> print(c) 1 하지만 파이썬에서는 다음과 같이 한 번에 다수의 변수에 같은 값을 줄 수 있다. >>> a = b = c = 7 >>> print(a) 7 >>> print(b) 7 >>> print(c) 7 이 경우 모든 변수에는 체인의 가장 오른쪽에 있는 7이라는 값이 할당된다. 다음과 같이 7 대신 변수로도 대신할 수 있다. >>> val = 99 >>> a = b = c..
파이썬 - 숫자
2020. 2. 12.Photo by Magda Ehlers from Pexels 숫자의 결합 연산자 설명 예 결과 + 더하기 5 + 8 13 - 빼기 90 - 10 80 * 곱하기 4 * 7 28 / 부동소수점 나누기 (소수점 포함한 결과 출력) 7 / 2 3.5 // 정수 나누기 (소수점 이하 버림) 7 // 2 3 % 나머지 7 % 3 1 ** 지수 3 ** 4 81 정수 0 을 다른 숫자 앞에 넣을 수 없다 숫자와 연산자 사이의 공백은 무시된다 0 으로 나누는 경우 예외 발생 >>> 05 File "", line 1 SyntaxError: leading zeros in decimal integer literals are not permitted; use an 0o prefix for octal integers >>> ..
파이썬 - 변수, 이름, 객체
2020. 2. 12.변수, 이름, 객체 파이썬에서 모든 것(부울, 정수, 상수, 문자열, 데이터 구조, 함수, 프로그램)은 객체object 로 구현된다. 객체는 데이터가 담긴 투명한 플라스틱 박스다. 투명한 유리창으로 밀봉된 박스(값을 볼 수 있지만 바꿀 수는 없다)는 불변immutable , 열려있는 상자는 데이터 값 변경이 가능한 가변mutable 으로 볼 수 있다. 파이썬은 객체의 타입을 바꿀 수 없는 강타입이다. 변수는 단지 이름일 뿐이다. 메모리에 있는 값을 참조하기 위한 이름이다. = 을 통해 할당하게 된다. 할당이라는 의미는 값을 복사하는 것이 아니라 데이터가 담긴 객체에 그냥 이름을 붙이는 것이다. 포스트잇이라고 생각하면 된다. >>> a = 7 >>> print(a) 7 >>> 변수 이름 b도 7이 담긴 객..
엑셀과 파이썬 결합을 통한 강력한 엑셀 활용법 How to Supercharge Excel With Python
2020. 2. 6.Photo by Lukas from Pexels How to integrate Python and Excel with xlwings 엑셀과 파이썬을 결합하여 사용할 수 있다면, 엑셀에 날개를 다는 것이나 마찬가지다. xlwings 라고 불리는 파이썬 라이브러리는 이를 가능하게 해주는데, VBA 를 통해 파이썬 스크립트를 호출하여 데이터를 전달할 수 있게 한다. 그럼 아래에서 이에 대해 알아보자. 파이썬과 엑셀 VBA 통합 사용의 장점 VBA 로도 충분히 상당한 작업을 할 수 있다. 하지만 파이썬을 엑셀에 통합해서 사용해야하는 이유는 무엇일까? VBA 에 대한 지식 없이도 엑셀에서 커스텀 함수를 만들수 있다 아무래도 사용자들은 엑셀이 친숙하다 파이썬을 사용함으로써 확실히 데이터 작업 속도가 빨라진다 파이썬..
윈도우에 파이썬 및 pip 설치하기 Python & pip Windows installation
2020. 2. 3.금일 기준 윈도우용 파이썬 최신 버전은 3.8.1 이다. Latest Python 3 Release - Python 3.8.1 Python Release Python 3.8.1 The official home of the Python Programming Language www.python.org 아래 링크 최하단 Files 에서 설치 파일을 다운로드할 수 있다. https://www.python.org/downloads/release/python-381/ 아래 3가지 중 적당한 것을 다운로드 받은 후 설치한다. Windows x86-64 embeddable zip file Windows for AMD64/EM64T/x64 4d091857a2153d9406bb5c522b211061 8013540 SIG ..
spaCy 패키지와 코드를 통한 NLP 기초 다지기 Clear the Fundamentals of NLP with Code.
2019. 12. 14.본 포스팅에서는 최근 각광을 받고 있는 spaCy 패키지를 사용하여 NLP 의 기본내용을 코드 실행을 통해 살펴본다. spaCy 는 Explosion AI 의 Matt Honnibal 에 의해 개발된 것으로 “Industrial strength NLP in Python” 을 모토로 삼고 있다. 생산환경에서 주로 사용되며, 사용자 친화성과 객체 기반 접근방식을 통해 문자열이나 배열 대신 객체를 결과값으로 반환한다. NLTK 보다 나은 점 Cython 로 작성되어 엄청 빠른 속도를 선보인다 의존 구문 분석 커스토마이징이 손쉬운 대규모의 워드 벡터 접근 가능 통합된 워드 벡터 GPU 가속 지원 사용자 정의 딥러닝 네트워크 지원 하지만, NTNL 에 비해 매우 느린 문장 토큰화 속도 Prerequisites 다..
우분투 18.04 에 아파치 스파크 설치하기 Install Apache Spark on Ubuntu 19.04/18.04 & Debian 10/9/8
2019. 11. 4.Ubuntu 19.04/18.04 그리고 Debian 9/8/10 에 Apache Spark 를 설치하는 방법에 대해 알아봅니다. 설치에 앞서 시스템 패키지를 업데이트합니다. (AnnaM) founder@hilbert:~$ sudo apt -y upgrade Reading package lists... Done Building dependency tree Reading state information... Done Calculating upgrade... Done (AnnaM) founder@hilbert:~$ sudo apt -y upgrade Step 1: Install Java Apache Spark 는 자바를 필요로 합니다. 어떤 버전의 자바가 설치되어 있는지 java -version 으로 확인해..
Plotly를 이용한 데이터 시각화 Data visualization with Plotly
2019. 10. 26.Data visualization는 데이터로부터 정보와 가치를 추출해내는 데 중요한 역할을 한다. 파이썬은 이러한 목적에 부합하는 다양한 라이브러리를 제공하고 있는데, 여기서는 Plotly 에 대해 살펴본다. Plotly 는 온라인 데이터 분석과 시각화 툴을 개발하는 회사로, pip install plotly 를 통해 간단하게 설치할 수 있다. 그리고 파이썬 노트북에서 임포트해오면 된다. 아래는 아나콘다 환경에서 설치하는 예이다. (AnnaM) founder@hilbert:~$ conda install -c plotly plotly Collecting package metadata: done Solving environment: done ## Package Plan ## environment locati..
tqdm 을 사용하여 파이썬/판다 Progress Bars 만들기
2019. 10. 24.Introducing tqdm tqdm 는 즉석에서 progress bar 를 생성해주고, 함수나 반복문의 TTC (Time To Completion) 를 예측하는 파이썬 패키지를 말한다. from tqdm import tqdm_notebook list = [] for x in tqdm_notebook(range(10000)): list.append(x**x) pip 를 이용해서 다음과 같이 간단히 설치가 가능하다. (AnnaM) founder@hilbert:~$ pip install tqdm Collecting tqdm Downloading https://files.pythonhosted.org/packages/e1/c1/bc1dba38b48f4ae3c4428aea669c5e27bd5a7642a74c8..
고급 주피터 노트북 사용팁 Advanced Jupyter Notebooks Tutorial (Part 1)
2019. 10. 24.Shell Commands 느낌표(exclamation mark)로 시작되는 코드 셀 내의 라인은 셀 커맨드로 실행된다. 이는 데이터셋을 비롯한 파일을 다룰 때나 파이썬 패키지를 관리할 때 유용하다. 간단한 예를 보자. !echo Hello World!! Hello World!! pip freeze | grep pandas pandas==0.25.1 Note: you may need to restart the kernel to use updated packages. 그리고 $ 심볼을 활용하여 파이썬 변수로도 활용가능하다. message = 'This is nitfy' !echo $message This is nitfy Basic Magics 유닉스 명령어와 상당 부분 유사해보이지만, 매직 명령어는 모두 ..
아파치 웹서버 버추얼 호스팅 설정 How To Set Up Virtual Hosts in the Apache Web Server on Ubuntu 18.04
2019. 10. 21.아파치 웹서버를 사용하는 경우, 하나 이상의 도메인을 호스팅하기 위해 버추얼 호스트(Nginx 의 server blocks 과 유사)를 설정할 수 있다. 도메인 설정과 관련해서 더욱 자세한 내용은 introduction to DigitalOcean DNS 을 참조하기 바란다. 1. antilibrary.org 라는 도메인 이름으로 디렉토리를 생성한다. mkdir -p 상위경로도 함께 생성하라는 의미이다. (parabellum) founder@hilbert:~$ sudo mkdir -p /var/www/antilibrary.org/public_html 로그 파일이 저장될 디렉토리도 생성 (parabellum) founder@hilbert:~$ sudo mkdir /var/www/antilibrary.org..
아파치 삭제 후 재설치 apache2.service is not active, cannot reload.
2019. 10. 18.아래와 같이 아파치 서비스가 제대로 작동하지 않는 경우 아파치를 삭제하고 재설치하는 방법을 알아보자. 다음의 순서대로 진행하면 된다. (base) founder@hilbert:/etc/nginx/sites-available$ sudo systemctl status apache2 ● apache2.service - The Apache HTTP Server Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled) Drop-In: /lib/systemd/system/apache2.service.d └─apache2-systemd.conf Active: failed (Result: exit-code) since Fr..
커스텀 ML 툴을 만들어주는 가장 빠른 방법 Streamlit 앱 소개 Turn Python Scripts into Beautiful ML Tools
2019. 10. 12.커스텀 ML 툴을 만들어주는 가장 빠른 방법 중 하나인 Streamlit 앱에 대해서 알아보자. 먼저 전통적인 ML 엔지니어의 작업 플로우와 Streamlit 을 이용한 플로우를 비교해보자. 아래는 기존의 앱 빌딩 플로우이다. 위의 방법도 물론 훌륭하다. 하지만 새로운 기능이 필요하다면, 그리고 툴 팀이 10개 이상의 서로 다른 프로젝트를 서포팅하고 있어 업데이트에 약 2달 정도 소요될 것입니다라고 말하는 바람에, 다시 주피터 노트북을 통해 실행한 다음, 이 내용을 파이썬 스크립트로 옮긴다. HTTP request, HTML, callback 등의 요소를 고려해가면서 Flask 앱 등을 작성한다. 구동해보고 부족한 기능이 있으면 다시 위의 과정을 반복한다고 생각해보자. 이러한 부분에서 어떻게 파이썬 스크..
텐서플로우 임포팅 경고 메시지 synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'
2019. 9. 27.텐서플로우 설치 후 다음과 같은 메시지가 뜨는 경우 (AnnaM) founder@hilbert:~$ python Python 3.7.4 (default, Aug 13 2019, 20:35:49) [GCC 7.3.0] :: Anaconda, Inc. on linux Type "help", "copyright", "credits" or "license" for more information. >>> >>> >>> >>> import tensorflow as tf /home/founder/anaconda3/envs/AnnaM/lib/python3.7/site-packages/tensorflow/python/framework/dtypes.py:526: FutureWarning: Passing (type, 1) ..
10줄짜리 파이썬 코드로 사진 속 자동차 수 카운트하기 Count Number of Cars in Less Than 10 Lines of Code Using Python
2019. 9. 26.10줄짜리 파이썬 코드로 간단히 사진 속의 차량 대수를 카운트 해보자. 먼저 아래의 라이브러리가 설치되어 있어야 한다. 설치 이전이라면 각각의 링크를 참고해 설치하도록 한다. opencv-python cvlib matplotlib tensorflow keras TensorFlow An open source machine learning library for research and production. www.tensorflow.org Home - Keras Documentation Keras: The Python Deep Learning library You have just found Keras. Keras is a high-level neural networks API, written in Pytho..
오픈소스 컴퓨터 비전 라이브러리 cvlib 설치
2019. 9. 24.오픈소스 컴퓨터 비전 라이브러리 cvlib 을 설치해보자. https://pypi.org/project/cvlib/ cvlib A high level, easy to use, open source computer vision library for python pypi.org 다음과 같이 설치할 수 있다. (lindy) founder@casey:~$ pip install cvlib Collecting cvlib Downloading https://files.pythonhosted.org/packages/ee/f8/86bbd3187ae6741f01f541ee88ee1fbac398f4248b9b327fd497358b4ef1/cvlib-0.2.2.tar.gz (10.0MB) |███████████████████..
우분투에 opencv-python 설치하기 Install OpenCV-Python in Ubuntu 18.04
2019. 9. 24.opencv-python 라이브러리를 Ubuntu 18.04 아나콘다 환경에 설치해보자. (lindy) founder@casey:~$ pip install opencv-python Collecting opencv-python Downloading https://files.pythonhosted.org/packages/44/35/6db0fa2e644922533ddc 2a3c41d1a86dabefce89d9db85ec31dcc69dc2e3/opencv_python-4.1.1.26-cp37-cp37m-manyl inux1_x86_64.whl (28.7MB) |████████████████████████████████| 28.7MB 32.4MB/s Requirement already satisfied: nump..
파이썬 리스트 Python Lists and List Manipulation
2019. 9. 24.파이썬 리스트의 특징 가변적 다양한 타입 포함가능 순차적 접근 (순서나 내용이 바뀔 때 유용) 동일한 값 중복해서 넣을 수 있음 이하 사용할 예제는 다음과 같음 >>> mylist = [‘a’,’b’,’c’,’w’,’d’,’e’,’f’,’g’,’h’,’i’,’w’] >>> mytuple = (‘x’,’y’,’z’) 리스트의 생성 >>> mylist = [] >>> mylist = list( ) 리스트로의 변환 >>> list(‘word’) ['w', 'o', 'r', 'd'] >>> text = ‘We strongly encourage maintainers of third-party Python projects to test with 3.8 during the beta phase and report is..
Dynalist - best outlining app for your best work Help center 소개
2019. 8. 3.workflowy https://workflowy.com/ 를 지난 달까지 사용하다 이번 달 들어 dynalist https://dynalist.io/ 로 옮겨탔습니다. 한 달 정도 workflowy 를 사용해보니 유용한 앱이라는 생각은 들었습니다. 무료 버전은 쓸 수 있는 목록에 제한이 있어 유료로 사용하기로 마음먹은 상황에서 돈을 더 주더라도 괜찮은 걸 선택해야겠다는 생각이 들었습니다. 그래서 workflowy 외에 어떤 것이 있는지 찾아보던 중 dynalist 를 알게 되었습니다. 일단 써봐야 알겠지만 한 눈에 보기에도 workflowy 보다는 풍부한 기능을 가진 것으로 보였습니다. 물론 월사용료도 그만큼 더 비싸긴했지만요. 다음과 같이 가입을 합니다. 구글 계정을 통해서도 간편하게 가입이 가능합니..
아나콘다 환경에서 주피터 노트북 ModuleNotFoundError: No module named 'ccxt'
2019. 6. 21.아나콘다 가상환경에서 ccxt 패키지를 설치하였으나 주피터 노트북에서 아래와 같이 해당 모듈을 찾을 수 없다고 나오는 경우의 처리방법에 대해 알아보자. import ccxt print(ccxt.exchanges) --------------------------------------------------------------------------- ModuleNotFoundError Traceback (most recent call last) in () ----> 1 import ccxt 2 print(ccxt.exchanges) ModuleNotFoundError: No module named 'ccxt' 하지만 아래에서 보는 바와 같이 ccxt 1.18.766 버전이 설치되어 있음을 알 수 있다. (l..
오라클 SQL 자주 쓰이는 숫자 관련 함수 ROUND
2019. 6. 17.자주 쓰이는 숫자 관련 함수 중 하나가 ROUND 이다. ROUND 숫자 함수는 제공된 값을 주어진 자리 수까지 반올림합니다. ROUND--(--source_number--,--precision--) 다음은 ROUND 함수를 이용하여 반올림하는 예제이다. select ROUND(7534.1238, 2), ROUND(99672.8591, 2) FROM dual; "ROUND(7534.1238,2)""ROUND(99672.8591,2)" 7534.12 99672.86 ROUND 함수는 2개의 파라메터를 갖는다. 이 중 하나는 필수 아이템으로 반올림 대상이 되는 값인 source_number 이다. 나머지 하나는 정밀도를 나타내는 파라메터인 precision으로, 반올림의 결과 양수의 경우 소수점 우측 몇 자..
워드프레스 관리자 로그인 오류 Redirect loop when trying to login to /wp-admin/
2019. 6. 16.워드프레스 설치형 사이트에서 관리자로 로그인한 후 다음의 현상이 나타나는 경우가 있다. 화면 상단의 Admin Bar가 노출되지 않는다 또는 mysite.com/wp-admin 경로를 통해 관리 페이지로 이동하고자 했으나 반복해서 mysite.com 페이지로 리다이렉트된다 이 경우 다음 순서대로 하나씩 진행해본다. 로컬 브라우저의 쿠키 삭제 전체 플러그인 비활성화 - /wp-content/plugins/ 디렉토리를 plugins_OLD 로 변경한다 sudo mv plugins plugins_OLD 기본 테마로 변경 /wp-content/themes/ 디렉토리로 이동하여 현재 테마 디렉토리 이름을 theme_OLD 와 같이 변경 .htaccess 파일 삭제 - .htaccess_OLD 와 같이 이 파일의 ..
AttributeError: module 'tensorflow' has no attribute 'get_default_graph'
2019. 4. 26.Tensorflow 2.0 환경에서 다음과 같은 에러가 발생하는 경우 AttributeError: module 'tensorflow' has no attribute 'get_default_graph' (cooke) founder@casey:~/mandart/glass$ python run_keras_server.py Using TensorFlow backend. * Loading Keras model and Flask starting server...please wait until server has fully started Traceback (most recent call last): File "run_keras_server.py", line 82, in load_model() File "run_ker..
ML을 활용한 스팸 SMS 적발시스템 Flask 로구 현하기 MLDevelop a NLP Model in Python & Deploy It with Flask
2019. 4. 23.Develop a NLP Model in Python & Deploy It with Flask, Step by Step Flask API, Document Classification, Spam Filter ML을 활용하여 스팸 SMS 텍스트 메시지를 적발하는 시스템을 만들어보자. ML 시스템의 워크 플로우는 다음과 같다. Train offline -> Make model available as a service -> Predict online. 분류기는 스팸과 스팸이 아닌 메시지를 가지고 오프라인으로 훈련을 하게 된다. 훈련된 모델은 서버 사용자에게 서비스 형식으로 배포된다. https://cdn-images-1.medium.com/max/1080/1*QverR-xExd4UvfLh3Iq79w.png 모델..
터미널세션 녹화 및 공유기 asciinema
2019. 4. 20.asciinema 는 터미널 세션을 녹화하고 웹상으로 공유할 수 있게 해주는 오픈소스 솔루션이다. 간단히 녹화가 가능하고, 플레이어를 멈추고 터미널 상의 코드를 복사 및 붙여넣기가 가능하다. 손쉽게 블로그 등의 포스팅에 플레이어를 넣을 수도 있다. Installation pip 를 이용해 다음과 같이 설치할 수 있다. https://pypi.org/project/asciinema/ (cooke) founder@casey:~$ pip install asciinema Collecting asciinema Downloading https://files.pythonhosted.org/packages/a7/71/771c859795e02c71c187546f34f7535487b97425bc1dad1e5f6ad2651..