f_
frhyme.code
🐍
중급 ~ 고급총 621개 아티클 수록

Python Deep-Dive & 내부 메커니즘

Python Core Architecture & Performance

단순 문법 학습을 넘어 파이썬 런타임의 동작 원리와 고급 테크닉을 다룹니다. 이터레이터/제너레이터 프로토콜, 데코레이터, GIL과 동시성 모델, NumPy 벡터 연산 최적화를 학습합니다.

정렬:
#01

슬랙에 학생식당 메뉴 알려주는 봇 만들기

intro 과거에 매일 학생 식당 메뉴를 확인하는 것이 귀찮아서 슬랙에 봇을 만들었던 적이 있습니다. 그 내용을 정리해서 업로드합니다. motivation 주로 학생식당이나 교직원식당에 밥 먹으러 가는데, 메뉴가 뭐 나오는지 매번 찾는 것이 귀찮...

•⏱ 약 27분 소요•
#python#slack#bot
읽어보기→
#02

Python으로 alpha-algorithm을 구현해봅니다.

intro 은 기업의 정보시스템에 축적되는 데이터들(일반적으로 이 분야에서는 이벤트 로그라는 이름으로 많이 부릅니다)로부터 회사의 업무 간의 흐름을 도출해 내고, bottleneck 등을 발견하는 기술을 의미합니다. 몇 년 전부터는 단지 프로세스...

•⏱ 약 31분 소요•
#python#process-mining#process-discovery#pandas
읽어보기→
#03

Python: python으로 네트워크 분석 하기 - basic

intro 저희 연구실에서는 네트워크 분석을 연구실 과제로 많이 진행했습니다. 보통 논문의 서지정보(author keywords, authors, affiliation etc)을 가지고 서로 어떤 관계를 맺고 있는지에 대한 네트워크 분석을 수행합...

•⏱ 약 25분 소요•
#python
읽어보기→
#04

Algorithm: arrayMaxConsecutiveSum(inputArray, k)

Problem size 의 배열이 있을 때, 해당 배열로부터는 크기 의 연속된 배열을 개 만들 수 있다. 만들 수 있는 배열 중에서 가장 큰 합은 무엇인가? solution slower, but pythonic way 사실 아래 방법이 보통 파이...

•⏱ 약 3분 소요•
#python#algorithm#list#iterator
읽어보기→
#05

Algorithm: buildPalindrome

Problem 문자열 s 로부터 만들 수 있는 가장 짧은 Palindrome을 만들어주는 함수입니다. s가 이미 Palindrome라면, 해당 문자열을 그대로 리턴하면 되고, 아닐 경우에는 해당 문자열을 이용해 새로 만들어줘야겠죠. solutio...

•⏱ 약 1분 소요•
#python#algorithm#palindrome#string
읽어보기→
#06

Algorithm: sudoku(grid)

Problem n n matrix를 입력받아, 해당 매트릭스에서 스도쿠의 요건이 성립하는지를 체크하는 함수 - 모든 row에 1 - 9 까지의 모든 값이 있을 것 - 모든 column에 1 - 9 까지의 모든 값이 있을 것 - 3칸 씩 잘라서 만...

•⏱ 약 3분 소요•
#python#algorithm#sudoku#matrix
읽어보기→
#07

Algorithm: digitsProduct(product)

Problem 특정한 수 가 들어왔을 때, 의 인수 들을 조합해 만들 수 있는 가장 작은 수를 찾는 함수입니다. 이 문제는 약간 이해가 어려울 수 있어서, 예를 중심으로 설명합니다. examples 1. digitsProduct(2) ==> 2 ...

•⏱ 약 5분 소요•
#python#algorithm#codefight#dictionary
읽어보기→
#08

Algorithm: spiralNumbers(n)

Problem 은 나선형 이라는 뜻인데, 달팽이집처럼 뺑뺑 돌아나가는 것을 의미하고 spiralNumbers(n)은 음...예시를 보는 게 더 빠를 것 같다. examples 1부터 입력받은 정수까지를 nn matrix에 시계방향으로 배치하고 해...

•⏱ 약 5분 소요•
#python#algorithm#matrix#matrix-traversal
읽어보기→
#09

Member testing in python

intro 코딩할 때 빈번하게 하는 일 중 하나가 바로 "특정 자료 구조에 특정한 값이 있는지 확인"하는 것이죠. 이를 전문적인 말로 member testing 이라고 합니다. 매우 사소하지만, 이걸 list에 대해서 하는 경우와, set에 대해...

•⏱ 약 5분 소요•
#python#python-basic#member-testing#list
읽어보기→
#10

Algorithm: hasPathWithGivenSum(t, s)

Problem tree 가 주어졌을 때, leaf로부터 root까지의 합이 s인 path가 존재하는지를 찾는 함수를 만듭니다. example Define Tree(binary) linked list 말고도 Tree 형태의 자료구조도 있습니다. 여...

•⏱ 약 3분 소요•
#python#binary-tree#algorithm#codefight
읽어보기→
#11

Algorithm: isListPalindrome(l)

Problem linked list 이 Palindrome인가? 를 확인하는 함수 ReversedLinkedList(head) Palindrome인지를 확인하기 위해서는 Reverse하는 것이 중요하고, 이를 따로 함수로 정의하였습니다. - 간단...

•⏱ 약 4분 소요•
#python#algorithm#palindrome#linked-list
읽어보기→
#12

Algorithm: mergeTwoLinkedList(l1, l2)

Problem 두 non-increasing linked list가 들어왔을 때, 이 둘을 합친 non-increasing linked list를 만드는 함수 example mergeTwoLinkedList([0, 1, 5], [3,3,3,7])...

•⏱ 약 2분 소요•
#python#linked-list#algorithm#codefight
읽어보기→
#13

Algorithm: removeKFromList(l, k)

Problem linked list 에 가 포함되어 있을 경우, 모든 를 삭제하고 삭제된 linked list를 리턴하는 함수를 만듭니다. example removeKFromList([3,1,2,3], 3) ==> [1,2] solution

•⏱ 약 1분 소요•
#python#linked-list#codefight
읽어보기→
#14

Algorithm: reverseNodesInKGroups(head, k)

Problem linked list를 k 개만큼씩 끊고 각자 reversing하여 다시 연결해주는 함수를 말한다. example reverseNodesInKGroups([1,2,3,4], 2) ==> [2,1,4,3] reverseNodesInK...

•⏱ 약 3분 소요•
#python#linked-list#algorithm#reversing
읽어보기→
#15

Algorithm: rotateMatrix

Problem 매트릭스를 회전하는 함수를 만들어 봅니다. - Transpose 는 diagonal line을 축으로 회전해주는 것이고, 여기서 만들려고 하는 것은 matrix의 중심에서 회전시키는 것을 말합니다. - 역시 예제로 설명하는 것이 좋...

•⏱ 약 3분 소요•
#python#algorithm#codefight#rotation
읽어보기→
#16

Linked list(basic)

intro 대학교에 입학해서 처음 C로 코딩을 할때, "array 우왕 좋아" 하면서 쓰다가, 처음 를 만났을 때 매우 당황했던 기억이 있습니다. 특히, C로 배워서 처음 포인터를 만났을때 그 당혹감이 매우 컸었는데 계속 포인터를 써야 하니까 그...

•⏱ 약 3분 소요•
#python#linked-list#python-basic
읽어보기→
#17

Python에서 pandas를 이용해서 excel을 읽어봅시다

Intro 을 알기 전에는 공부하다가 공유하면 좋을 것이라고 생각되는 자료들을 ppt로 만드는 일이 많았습니다. 그래서 slideshare를 이용하곤 했는데, 그때 올리던 자료 중에서 유독, 조회수가 높은 자료가 있었는데 파이썬에서 엑셀 파일을 ...

•⏱ 약 6분 소요•
#python#python-libs#excel#pandas
읽어보기→
#18

Algorithm: dynamic programming - basic

intro dynamic programming은 음...일단은 'recursion'이라고 생각해도 상관없다. 이전에 계산한 값을 가지고, 이후의 값을 계산할 수 있는 것을 의미하는데, 쉽게는 fibonacci가 이 경우에 포함된다. - knaps...

•⏱ 약 3분 소요•
#python#algorithm#dynamic-programming#codefight
읽어보기→
#19

Algorithm: sumInRange(nums, queries)

Problem 간단한 코드로 쓰자면 다음과같다. 다만, 현재는 계산속도가 느려서 개선하고 있는 상황. - nums: int list - ex: [1,2,3,4,5,6] - queries: list of (position pair) - ex: [[...

•⏱ 약 9분 소요•
#python#algorithm#codefight#summation
읽어보기→
#20

Algorithm: fillingBlocks(n)

Problem n 4 의 직사각형을 2 1 혹은 1 2의 직사각형으로 채워야 할때, 채울 수 있는 방법의 수는 총 몇 가지 인지를 리턴하는 함수입니다. - if n==1: 1 4 인 직사각형은 2 1을 가로로 두 번 채우는 것 밖에 방법이 없음 ...

•⏱ 약 6분 소요•
#python#algorithm#dynamic-programming#codefight
읽어보기→
#21

Algorithm: maximalSquare(matrix)

Problem https://codefights.com/interview-practice/task/mkobsYSSQo3JpvYNN/ 0, 1로 구성된 2 dimensional binary matrix(직사각형) 내부에 있는 가장 큰 정사각형의 넓...

•⏱ 약 4분 소요•
#python#algorithm#codefight#dynamic-programming
읽어보기→
#22

Algorithm: paintHouse(cost)

Problem 순서대로 배치된 집을 색칠하려고 한다. - 방법은 총 3가지 - 집마다 색칠할 때의 가격은 다르며, i 번째 집을 j 색으로 칠할 때의 가격은 - 연속된 집은 같은 색으로 칠하면 안된다. 모든 집을 칠할 수 있는 가장 적은 가격을 ...

•⏱ 약 3분 소요•
#python#algorithm#codefight#dynamic-programming
읽어보기→
#23

Algorithm: regularExpressionMatching(s, p)

Problem https://codefights.com/interview-practice/task/Sx8ndFtwEyCRRqF7q/ string s가 regular expression 으로 정의된 pattern p를 따르는지를 체크하는 함수를 만...

•⏱ 약 5분 소요•
#python#algorithm#dynamic-programming#codefight
읽어보기→
#24

Algorithm: singlePointOfFailure(connections)

Problem 는 2 dimensional array로, 가 1이면, node 가 연결되어 있음을 의미한다(o/w 0) connections를 이용하여 네트워크를 그릴 수 있으며, 입력받은 connections의 경우 모든 노드가 연결되어 있다....

•⏱ 약 4분 소요•
#python#graph#algorithm#networkx
읽어보기→
#25

Algorithm: isTreeSymmetric(t)

Problem binary tree t가 symmetric한지를 검사하는 함수입니다. define binary tree value, left, right를 가지는 아주 간단한 객체. shallow copy를 조심하기 위해서, copy functi...

•⏱ 약 4분 소요•
#python#binary-tree#algorithm#codefight
읽어보기→
#26

Algorithm: kpalindrome

Problem palindrome이 무엇인지는 이미 다들 알고 계신것 같아용, 앞뒤로 읽어도 똑같은 스트링을 말합니당(1577 1577말고 1577 7751 이용) 다만, kpalindrome의 경우는 해당 문자열에서 k개 이하의 문자를 삭제했을...

•⏱ 약 2분 소요•
#python#algorithm#codefight#dynamic-programming
읽어보기→
#27

Algorithm: longestIncreasingSubsequence(sequence)

Problem Given , find the longest IncreasingSubsequence. - 정확히는 길이만 계산해주면 되는 함수 example consecutive가 아니고, integer position 상에서 앞과 뒤의 관계만 지...

•⏱ 약 10분 소요•
#python#dynamic-programming#algorithm#codefight
읽어보기→
#28

Algorithm: longestPath(fileSystem)

Problem string 를 입력받고, 존재하는 파일 중 string size가 가장 긴 path 를 찾아서 리턴해주는 함수를 만든다. 를 프린트하면 다음과 같다. - picture와 documents의 경우, user의 하위폴더이며, phot...

•⏱ 약 5분 소요•
#python#codefight#algorithm#tree
읽어보기→
#29

Python: datetime.date

intro - datetime 라이브러리 대한 설명 에서 바로 datetime을 처리하는 것이 더 편할 때도 있지만, 저는 datetime을 쓰는 편이 더 좋아서, 이쪽을 선호합니다. 단순히 말하자면, datetime 이라는 object는 날짜만...

•⏱ 약 8분 소요•
#python#python-libs#datetime
읽어보기→
#30

Functools cmp_to_keys

intro python 에서 유용하게 쓰이는 functools의 주요 함수들을 정리하였습니다. 모든 함수들을 정리한 것은 아니고, 제가 주로 쓰는 함수들을 중심으로 정리해봤습니다. functools.cmptokey 는 두 요소간의 '순서상 우위'...

•⏱ 약 5분 소요•
#python#python-libs#functools#functional-programming
읽어보기→
#31

Decorator in python

Intro - decorator는 무엇인가? OOP(Object-Oriented Programming)을 들어본 사람이라면, '상속'이라는 개념을 이미 알고 있을 겁니다. 엄밀히 따지면, 다르지만, 제가 볼 때는 비슷한데, 상황에 따라서, fun...

•⏱ 약 9분 소요•
#python#python-basic#decorator#functools
읽어보기→
#32

MacOS에서 konlpy 설치하고 사용하기(실패기)

intro 더 진행하기 전에, 현재로서는 실패한 상황입니다. 'programmer.co.kr'에서 다른 분께서 해결했다는 것 같아서, 이를 다시 해보기 위해서 시도했지만, 여전히 실패했습니다. - 만약 이후에 konlpy가 필요하다면, 부트캠프로...

•⏱ 약 10분 소요•
#python#python-libs#konlpy#macos
읽어보기→
#33

Python with iterators - itertools, functools

remind 대략 1년전에 만들었던 자료를 다시 올립니다. 과거에는 가 좋은 라이브러리라고 생각했었는데, 이제는 그냥 필요할때, generator로 직접 정의해서 쓰는 게 더 편해서, 거의 쓰지 않습니다. 다만, 이나, 의 경우는 빨라서 쓰는 경...

•⏱ 약 36분 소요•
#python-basic#python#python-libs#iterator
읽어보기→
#34

Numpy 기본적인 사용법

intro - 아주 간단한 numpy 활용법 NumPy is the fundamental package for scientific computing with Python. It contains among other things numpy없이 간단...

•⏱ 약 11분 소요•
#python#python-libs#numpy
읽어보기→
#35

Python에서 json을 읽어봅시다.

intro 간단하게 파이썬에서 json 파일을 읽는 방법을 설명합니당 json 파일은 파이썬에서 딕셔너리처럼 key-value pair로 구성되어 있어서, 간단하게 변환할 수 있을 것 같은데, 간단하게 변환해주지는 않습니당. solution 아래...

•⏱ 약 1분 소요•
#python#python-libs#json
읽어보기→
#36

Object Oriented Programming in Python

intro 다음 내용을 (아주 간단히) 소개할 계획 - basic - inheritance - method overriding - class method - static method basic object = 관련있는 데이터와 메소드의 합 met...

•⏱ 약 11분 소요•
#python#python-basic#oop#object-oriented-programming
읽어보기→
#37

Python: data structure

intro 예전에는 python의 다양하 자료구조를 잘 아는 것이 중요하다고 생각해서, 정리해두었는데, 한참 쓰다보니, 다 필요없고. 결국 back to basic인데, 기본인, list, dictionary, 그리고 pd.DataFrame이 가...

•⏱ 약 29분 소요•
#python#python-basic#collections#data-structure
읽어보기→
#38

Read xml in python

intro 'python에서 xml을 어떻게 읽고 어떻게 처리하는가'를 정리해보려고 합니다. 보통 csv, excel의 자료를 많이 처리하시는데, 웹에서 데이터를 가져오거나, 아니면 ERP와 같은 정보시스템에서 데이터를 가져와야 할때는 html,...

•⏱ 약 7분 소요•
#python#xml#python-basic#python-libs
읽어보기→
#39

Nltk 에서 영단어 온톨로지(wordnet) 사용하기

intro wordnet은 프린스턴 대학교에서 과거에 영어단어들에 대해서 구축한 일종의 온톨로지로, 단어간에 어떤 관계를 가지고 있는지를 정리한 온톨로지다. 사전처럼 단어별로 개별적인 의미를 정리하는 것보다, 이렇게 단어간의 관계를 중심으로 정리...

•⏱ 약 33분 소요•
#python#nltk#python-libs#wordnet
읽어보기→
#40

Matplotlib 폰트 변경하기

intro. https://programmers.co.kr/learn/courses/21/lessons/950 를 보고 제가 해본 자료입니다. matplotlib을 활용해서 그림을 그릴 때 legend, label을 성의 없이 할 때가 많긴 합니...

•⏱ 약 16분 소요•
#python#python-libs#matplotlib
읽어보기→
#41

Jupyter notebook 파일을 마크다운으로 편하게 변환합시다(failed yet)

intro 파이썬으로 공부한 것들을 정리할 때, 보통 을 활용합니다. 블로그에 포스트를 하려면 으로 변환해야 하는데, 에서 마크다운으로 다운 받으면 해당 디렉토리에 바로 다운 되는 것이 아니라, 다운로드 폴더에 다운이 되고 이를 다시 옮겨야 하는...

•⏱ 약 5분 소요•
#python#jupyter-notebook#markdown#jekyll
읽어보기→
#42

Graphviz를 이용해 그림 그리기

intro 보통 python에서 그림을 그릴 때는 을 사용해서 그리는 일이 많기는 합니다만, 네트워크를 그릴때는 생각만큼 예쁘게 나오지 않는 일들이 많습니다. 그래서 찾아보니 를 이용하면 좀 예쁘게 르리 수 있다는 것 같아서 이를 어떻게 사용할 ...

•⏱ 약 21분 소요•
#python#python-libs#graphviz#matplotlib
읽어보기→
#43

Python에서 객체 isinstance 체크하기

Intro 파이썬을 활용하다보면 객체의 타입을 활용해서 조건을 걸어주는 일들이 생긴다. 객체의 타입에 따라서 제어해주고 싶을 때 다음 코드를 쓰면 유용할 수 있다. Code 코드의 실행 결과는 다음과 같다. 해당 instance가 해당 class...

•⏱ 약 1분 소요•
#python#python-basic#object-oriented-programming#type-checking
읽어보기→
#44

Organizational mining(basic)

what is organizational mining 은 보통 크게 두가지로 구분된다(고 생각합니다). - Process model mining and performance analysis: Process model을 구축하고 해당 프로세스 모델...

•⏱ 약 8분 소요•
#python#python-libs#matplotlib#seaborn
읽어보기→
#45

Python string으로 컴파일하기

string을 코드로 바로 돌릴 수 있을까요? 원래는 파일을 파이썬에서 바로 import할 수 없을까? 고민하다가 궁금해진 부분이긴 한데요. 외부에서 만든 코드를 로 가져오는 경우에는 로 하면 그대로 되니까 문제가 없습니다만, 으로 가져와야 하는...

•⏱ 약 1분 소요•
#python#python-basic#string
읽어보기→
#46

Jupyter notebook에서 import ipynb

does it possible to import .ipynb 일반적으로는 파일을 다른 파일에서 하는 것은 매우 쉽고 간단하다. 그냥 파일 내부에서 경로만 제대로 하여 해주면 끝임. 만약 사람들이 대부분 파일을 만든다면 아무 문제가 없으나, 여기서...

•⏱ 약 7분 소요•
#jupyter-notebook#python#not-yet
읽어보기→
#47

Python 에서 json 스트링 읽기

read json string as a dictionary 이전에는 를 활용하여 파일을 딕셔너리의 형태로 변환하였는데, lib을 이용하여 변환한다. 이 편이 더 편한 것 같기도 하다. 특히 파일들의 경우는 내부에 ""으로 스트링이 표현되어 있고 ...

•⏱ 약 1분 소요•
#python#python-libs#json#dictionary
읽어보기→
#49

웹에서 이미지를 읽읍시다.

웹에서 이미지를 읽어봅시다 개발을 하다보면 웹에서 이미지를 가져와야 할 때가 있습니다. 저는 바보라서 그냥 로 해도 되지 않을까? 라는 바보같은 생각을 한 적도 있습니다ㅠㅠ당연히 안되죠. 일반 텍스트는 보통 을 사용해서 비교적 쉽게 크롤링할 수 ...

•⏱ 약 3분 소요•
#python-libs#python#image#requests
읽어보기→
#50

Distance를 비교해봅시다.

비슷한가 안 비슷한가! 데이터 분석을 하거나 해야할 때, 많이 쓰이는 measure 중 하나는 similarity(distance)라고 할 수 있습니다. 이 아이들은 비슷한가? 비슷하면 얼마나 비슷한가? 는 항상 직관적으로 궁금해지는 부분입니다....

•⏱ 약 8분 소요•
#python#metric#distance
읽어보기→
#51

Wordcloud를 만들어봅시다.

wordcloud가 뭘까여 보통 이런걸 워드클라우드라고들 하지요. 파이썬에서 워드클라우드를 만들수 있다고 해서 정리해보았습니다. 일단 해당 라이브러리를 일단 설치를 합시다. simple example 텍스트를 객체에 넣어주고, 다음을 실행하면 실...

•⏱ 약 5분 소요•
#python#python-libs#pil#wordcloud
읽어보기→
#52

데이터의 차원을 줄여봅시다.

데이터 차원을 왜 줄여야 하나요? 우선 쓸모가 없으니까요. 사람들이 빅데이터라는 말을 하기 시작한 이후부터는(물론 저 단어는 정말 쓸모없습니다만), 가령 엑셀같은 데이터에 그냥 칼럼이 엄청 많아도 너무너무 좋다고 생각할 지도 모릅니다. "우리에게...

•⏱ 약 11분 소요•
#python#python-libs#sklearn#matplotlib
읽어보기→
#53

Networkx를 이용하여 기본적인 centrality 분석하기

centrality는 무엇인가요? 한국말로 하면 '중심도'가 되겠네요. 네트워크가 구성되었을 때, 우리가 궁금한 것은 네트워크에서 어떤 노드가 중요한 놈인가? 라는 것입니다. 란 네트워크 상에서 중요한 노드를 찾기 위한 일종의 metric이라고 ...

•⏱ 약 14분 소요•
#python#python-libs#networkx#matplotlib
읽어보기→
#54

Python에서 작업한 내용을 바로 피피티로 옮기자!

왜 이런짓을 하죠? 저는 보통 대부분의 작업을 맥에서 하는데요(윈도우 마우스 쓰기 싫어요 손목 아파여). 맥에서도 물론 마소 오피스를 쓸 수 있지만, 썩 마음에 들게 워킹하지 않아요. 반드시 마우스를 써야 하는 것도 그렇고. 엑셀의 경우는 그래도...

•⏱ 약 9분 소요•
#python-libs#python#ppt#not-yet
읽어보기→
#55

R&D 지식지도를 만들어봅시다.

scopus 데이터를 이용한 저자 키워드 데이터 자동화하기 물론 '텍스트'를 다루는 대부분의 분석의 경우는 자동화가 어렵습니다. 다양한 이유가 있겠으나, 제가 아는 범주에서의 문제는 '예외처리'죠. 텍스트는 예외가 많습니다. 특히, 키워드 분석을...

•⏱ 약 18분 소요•
#python-libs#python#networkx#matplotlib
읽어보기→
#56

Graphviz를 이용하여 키워드 네트워크를 그려 봅시다(실패함)

백업용으로 일단 업로드 해두었습니다. 아래 내용은 graphviz를 이용해 그림을 그려보았으나, 생각보다 예쁘게 나오지 않았씁니다. 원인은 다음들이라고 생각됩니다. - dot language를 잘 모르고 주먹구구식으로 함 - 체계적으로 코딩한 것...

•⏱ 약 13분 소요•
#python-libs#matplotlib#networkx#python
읽어보기→
#57

Networkx와 matplotlib를 사용하여 graph를 예쁘게 그려 봅시다.

maplotlib를 사용하는 이유. 이전 포스트에서는 를 사용하겠다고 했었습니다. 물론 이 것의 장점이 있기는 한데, 약간 범용적인 측면에서 생각해보면 결국 matplotlib로 돌아가게 됩니다(물론 process model을 표현하는데는 gra...

•⏱ 약 4분 소요•
#python#python-libs#networkx#matplotlib
읽어보기→
#58

Networkx Graph에서 새로운 Graph 만들기(filtering, map 등)

간단히 말해서, 네트워크 또한 데이터 구조다. '어떤 노드가 어떤 노드와 연결되어 있는가?', '또한 그 노드들은 어떠한 특성을 가지고 연결되어 있는가?', '그 노드와 직접 연결된 노드들은 무엇이 있는가?' 등 네트워크를 분석하다보면 관련된 분...

•⏱ 약 10분 소요•
#networkx#python-libs#python
읽어보기→
#59

Network를 이쁘기 위해서 공부를 합니다.

사실 해보니까 매우 간단하네요. 예전에도 이걸 정리를 해뒀던 것 같은데, 매번 여기저기 둬서 없어졌습니다. 괜히 node size, edge width를 weight에 따라서 알아서 조절하려고 하지 말고, 그냥 cmap을 이용해서 간단하게 하는 ...

•⏱ 약 7분 소요•
#python#python-libs#networkx#matplotlib
읽어보기→
#60

Python에서 warning 무시하기

python으로 작업할 때 warning을 무시하자 python으로 작업하다보면(특히 ) 이런저런 warning이 뜹니다. 물론 버그의 원인이 되므로 매우 중요하지만, 이걸 하나하나 다 고치다보면 진짜 복창이 터지거든요. 그래서 저는 종종 무시할...

•⏱ 약 1분 소요•
#python#python-libs#jupyter-notebook
읽어보기→
#61

아마도 대략 프레임은 완료한 rnd knowledge map 코드입니다

훨씬 깔끔하게 만든 rnd knowlege map code 아 이제 뭘 좀 고치거나 확장하거나 하는게 좋겠네요(물론 이전과의 비교지, 지금도 문제는 많습니다만)) 앞으로도 이 내용은 계속 수정하면서 올릴 것 같습니다. 기존의 문제점 일단 제대로 ...

•⏱ 약 26분 소요•
#python#python-libs#networkx#matplotlib
읽어보기→
#62

Bipartite graph를 다룰 거에요!!

bipartite graph를 다뤄 봅시다. author keyword 와 index keywords 는 서로 다른 의미를 가집니다. 하나의 논문에는 author keyword와 index keyword가 둘 다 있는데, 이 edge를 중심으로 ...

•⏱ 약 8분 소요•
#python#python-libs#networkx
읽어보기→
#63

데이터를 필터링합시다.

작업일지 제가 궁극적으로 하려는 것은 '저자 키워드'를 필터링 하려는 것입니다. 'small and medium enterprise' 와 'sme'는 같은 의미를 가집니다. 그렇다면 이 두 가지가 모두 표현될 필요는 없겠죠. 따라서 이를 변환하고...

•⏱ 약 16분 소요•
#python#difflib#nltk#networkx
읽어보기→
#64

Word embedding을 해봅시다.

word embedding이 뭔가요. 도 많이 들어 봤고, 도 많이 들어봤습니다. 어떻게 '되는 것인지'는 모르지만, 어떻게 쓸 수 있는 줄은 알고 있습니다. 아주 간단하게 말하면, 를 벡터로 표현한다는 것이겠죠. 기존에도 워드를 벡터화 하려는 ...

•⏱ 약 9분 소요•
#python#python-libs#nltk#gensim
읽어보기→
#65

Understand networkx better.

일반적으로 쓰는 networkx 의 function들은 centrality, draw, add/remove node and edges 가 다인데, 이 외에도 꽤나 유용한 함수들이 많이 있습니다. 이것들을 좀 정리해두는 것이 필요하다고 생각됨. n...

•⏱ 약 5분 소요•
#networkx#python#python-libs
읽어보기→
#67

Clustering을 해봅시다.

how to cluster 키워드 분석 중. 키워드를 활용해서 키워드 네트워크를 만들었고, 따라서 여기서 adjancency matrix or bi-adjancency matrix를 만들 수 있다. 여기까지는 됐고, 이 말은 다시 말하면, 개별 ...

•⏱ 약 7분 소요•
#python-libs#python#sklearn#clustering
읽어보기→
#68

R&D knowledge map again

후 키워드 네트워크부터 다시 합시다. 데이터 전처리부분은 거의 다 한 것 같아요. 맨 끝에 설명하겠습니다. 이제는 정말 단일한 데이터 집단을 모은게 아닐까 싶습니다. 키워드 네트워크를 구성했을 때, 만든 네트워크에서 잘못된 노드 들이 있는 경우가...

•⏱ 약 51분 소요•
#python#python-libs#matplotlib#networkx
읽어보기→
#69

Textblob, nltk를 활용하여 간단하게 텍스트 처리합시다.

text에 간단한 전처리를 하기 위해 textblob, nltk를 사용합시다. 사실 nlp에서 가장 중요한 것은 데이터 전처리입니다. 텍스트는 너무 중구난방이라서, 깔끔하게 정리해주는 게 굉장히 중요하고 또 필요합니다. 따라서 여기서는 비교적 단...

•⏱ 약 12분 소요•
#python#python-libs#textblob#nlp
읽어보기→
#70

Natural language processing을 해보장

one-hot encoding to word embedding 요즘 아무래도 포스팅이 중복되는 느낌들이 있습니다. 제가 이 블로그를 공부하면서 그 과정을 계속 쓰기 때문에 이 포스트 또한 지난 번에 쓴 내용들과 겹치는 부분들이 있을 것 같습니다....

•⏱ 약 14분 소요•
#python#python-libs#nltk
읽어보기→
#71

Subplot으로 그림을 더 예쁘게 만듭시다.

word-embedding을 하고 그 결과를 뿌려주는 과정에서, 학습을 많이 할수록, '의미적으로 유사한 단어들이 모인다'는 것을 보여주려고 하는데, 매번 똑같은 그림을 여러번 보여주는 것보다는 하나의 figure안에 으로 넣어주는 것이 훨씬 예...

•⏱ 약 4분 소요•
#python#python-libs#matplotlib
읽어보기→
#72

Matplotlib로 그린 그림에 text를 추가합시다.

matplolib로 그림 그릴 때, text 표시하기. 을 통해 만든 결과를 를 통해 2차원 공간에 표시하고 있는데, 이 때 각 위치에 text를 표시해주는 것이 좋아서 표시해주는 방법을 정리하기로 합니다. 말고도 도 있는데, 의 경우는 폰트의 ...

•⏱ 약 3분 소요•
#python-libs#python#matplotlib
읽어보기→
#73

Matplotlib에서 boxplot 예쁘게 그리기

boxplot을 예쁘게 그립시다. 지금 값들에 outlier가 있는가 없는가를 확인하려면 boxplot을 그리는 게 좋습니당. 아웃라이어가 얼마나 많은지, 어느 정도에서 다른 값들을 모두 버리는게 좋은지 등등은 boxplot으로 확인하는게 좋다고...

•⏱ 약 4분 소요•
#python#python-libs#matplotlib#boxplot
읽어보기→
#74

Subplot의 사이즈를 각각 다르게 조절합시다!

subplot의 사이즈는 어떻게 조절할 수 있을까요? 전체 figure에서 한번에 조절할 수있는 방법이 있는건가 싶었는데(아마도 있긴 있겠지만), grid로 한번에 넘겨주는 게 더 깔끔한 것 같아요. 네 여기서는 gridspec이라는 것을 사용해...

•⏱ 약 2분 소요•
#python#python-libs#matplotlib#subplot
읽어보기→
#75

Document를 클러스터링해봅시당

document clustering 뭐, 지금까지 간단하게 자연어 전처리 해주는 것들(영어에 대해서만)과 워드임베딩 등을 했습니다. 대략 어떤 메소드들이 있는지에 대해서 아주 간단하게 발을 담궈 보았고, 이제는 이것들을 어떻게 활용할지에 대한 고...

•⏱ 약 16분 소요•
#python-libs#nlp#python#matplotlib
읽어보기→
#76

클러스터링을 다시 공부해봅시다.

클러스터링을 다시 공부합니다. unsupervised learning인 클러스터링은 쉽게 생각하면, 비슷한 놈들끼리 묶어 준다는 이야기가 됩니다. 우선, '비슷한'을 정의해야 하는데, 개별 instance가 numerical vector로 표현된...

•⏱ 약 12분 소요•
#python#python-libs#clustering#matplotlib
읽어보기→
#77

Tsne는 정말 얼마나 느린가요? pca보다 얼마나 느린가요?

tsne는 얼마나 느린가요. 보통 차원이 너무 큰 데이터를 다루다 보니, 차원축소를 해야 할 때가 많은데, 그때 를 써야하나, 를 써야 하나 고민하게 됩니다. pca가 훨씬 빠르기는 한데, 굴곡이 진 부분, 즉 구부러진 부분을 무시하게 된다는 단...

•⏱ 약 12분 소요•
#python#python-libs#dimensionality-reduction#tsne
읽어보기→
#79

Spectral clustering에 대해서 정리해보겠습니다.

일반적인 clustering 클러스터링을 하기 위해서는 개체 간의 거리를 재는 것이 중요합니다. 이 때, 이 개체 간의 거리를 무엇으로 재는가? 가 중요한데, 데이터가 이라면, 는 개체의 이름, 은 개체가 가진 특성의 이름이 되겠죠. - 예를 들...

•⏱ 약 13분 소요•
#data-science#python#python-libs#clustering
읽어보기→
#80

늘 헷갈리는 axis0, axis1

axis는 늘 헷갈립니다. 왜 헷갈리는지 모르겠지만, 늘 헷갈려요(저는 알아요, 저만 그런것이 아닐것이라는 사실을 하하핫). 그래서 입력한 다음에도 제대로 되었는지를 늘 확인해야 합니다 새드. 그래서 여기에 적어두고 헷갈릴 때마다 보려고 합니다 ...

•⏱ 약 9분 소요•
#python#python-libs#numpy#axis
읽어보기→
#81

Boolean을 잘 다뤄야 pandas도 잘 쓸 수 있숩니돠

boolean vector 다루기 pandas를 쓸때는 boolean vector를 많이 다루게 됩니다. 예를 들어서, 특정 칼럼 Age를 20대 이상으로 필터링하고 싶다면, 로 표현을 합니다. 여기서 은 boolean vector가 됩니다. 하...

•⏱ 약 5분 소요•
#python#python-libs#pandas#boolean
읽어보기→
#82

Python으로 마코브 체인 만들어 보기

마코브체인이란 무엇인가? 학부 시절(까마득한...어라 10년 전이네...) 그러니까 2008년에 확률시스템분석 이라는 과목에서 마코브 체인을 처음 배웠습니다. 왠지 지금 다시 돌아가면 잘할 수 있을 것 같다는 쓸모없는 용기가 샘솟는 것을 보면 역...

•⏱ 약 7분 소요•
#python#python-libs#markov-chain#numpy
읽어보기→
#83

한글/영어 텍스트 구분하기

입력받는 텍스트는 어떤 언어인가? 입력받는 텍스트가 모두 '한글'이거나 '영어'라면 좋겠지만, 그렇지 않습니다. 또, 한글과 영어가 섞여 있는 경우도 아주 많죠. 기술분야의 전문적인 용어의 경우는 더욱 영어일 가능성이 높아서, 명사는 영어로 작성...

•⏱ 약 2분 소요•
#python#python-basic#nlp
읽어보기→
#84

매번 까먹는, 몬테카를로 시뮬레이션을 해봅시다!!

Intro - 왜 몬테카를로는 쉽게 잊어버리는 걸까요 네, 사실 저도 알고 있습니다. 한 번 배울 때, 제대로 배우지 않고, 주먹구구식으로 배우니까, 이모양인 것이죠...그래서 이번에는 제 블로그에 꼭 써놓고 다음에 읽어보도록 하겠습니돠. Mon...

•⏱ 약 3분 소요•
#python#python-libs#monte-carlo-simulation
읽어보기→
#85

Decision boundary를 그려 봅시다.

Decision Boundary가 뭔가요? 예를 들어봅시다. classification 문제를 해결하기 위해 데이터를 이용해 학습을 시켰습니다. 간단히, score를 보니까 꽤 높은 편이고, 딱히 오버피팅인 것 같지도 않긴 합니다만, 2차원에 뿌...

•⏱ 약 5분 소요•
#python#python-libs#matplotlib#numpy
읽어보기→
#86

Contour 플롯을 그려봅시다.

등고선이란 말입니다 그냥 contour라고 말하면 헷갈리는데, 지도에서 등고선이랑 같은 개념이라고 보시면 됩니다. 대충 아래 그림처럼, 비슷한 높이에 있는 놈들기리 묶어줍니다. 이런걸 contour라고 하죠. 사실 원래는 를 정리하려고 했던 것이...

•⏱ 약 4분 소요•
#python#python-libs#matplotlib
읽어보기→
#87

Python에서 string을 다양한 방식으로 출력하기

python에서 string format 조절하기 python에서 string을 출력할 때, 그냥 값만 출력하는 것이 아니라, 왼쪽/오른쪽/중간 정렬을 사용하거나, 과 같이 앞에 0을 padding하여 출력하는 것 등 다양한 기능등리 포함되어 있...

•⏱ 약 3분 소요•
#python#python-basic#format#string
읽어보기→
#88

기본부터 다시 - linear regression

왜 나는 늘 복습만 하는가? 텐서플로우는 예전부터 조금씩 공부를 하긴 했는데, 자료가 다 여기저기 흩어져 있어서ㅠㅠㅠ여기에 다시 정리해두기로 했습니다. 사실, 솔직한 고민은 좀 있습니다. 가 있는데 굳이 tensorflow를 써야 하나? 필요할까...

•⏱ 약 10분 소요•
#tensorflow#machine-learning#data-science#python
읽어보기→
#89

Logistic regression

머신러닝은 단순하게, '모델(hypothesis)'을 세우고, 이 모델이 맞는지/아닌지 평가하는 cost function을 통해 변수를 조절하는 것을 말합니다. classification의 경우도, '잘 예측할 만한 모델'을 세우고, 이 모델을 ...

•⏱ 약 7분 소요•
#python#tensorflow#python-libs#logistic-regression
읽어보기→
#90

Classification 결과를 평가해봅시다.

classifier의 성능을 어떻게 평가할까요? , 가 각각 있습니다. 이를 활용해서 현재 분류된 결과의 성능을 어떻게 잘 평가할 수 있을까요? 보통 classification을 평가하는 metric들은 binary classification을 ...

•⏱ 약 11분 소요•
#machine-learning#sklearn#python-libs#python
읽어보기→
#91

Softmax classifier

multi-class clasification 이전에 배웠던 에서는 True/False 만 판별합니다. 그러나, 이런 binary classification보다는 multi-class classification이 훨씬, 유용하죠. 이를 위해서 를...

•⏱ 약 9분 소요•
#python#python-libs#tensorflow#machine-learning
읽어보기→
#92

Python으로 association rule mining하기

association rule? 학부때 통계 수업때 association rule mining을 배웠던 기억이 (어렴풋하게) 있습니다. 어떻게 풀었는지는 기억이 잘 안나지만, 어떤 상황에 적용하는 것이었는지는 대략 기억나요. "사람들이 쇼핑해 간...

•⏱ 약 10분 소요•
#python#association-rule#pandas#itertools
읽어보기→
#93

Matplotlib의 cmap을 알아봅시다.

color map에서 색깔을 뽑아냅시다. 급하면 'blue', 'red' 이렇게 색깔을 일일이 입력하기도 하지만, 에는 integer list를 넣어주고 보통은 에 있는 칼라맵을 함께 넘겨줍니다. 예쁜 색 조합들이 이미 많이 있거든요. 예를 들면...

•⏱ 약 9분 소요•
#python#python-libs#matplotlib#colormap
읽어보기→
#94

Matplotlib legend 조절하기

legend를 잘 넣어야 글을 덜 적을 수 있습니다. 로 그림을 열심히 그리고 나서, "이 색깔의 모양 저것은 무엇이고..." 하는 식으로 설명을 덧붙이면 매우 피곤해집니다. 이런 짓을 좀 덜 하려면 legend만 잘 넣어도 됩니다. 포스트로 쓸...

•⏱ 약 4분 소요•
#python#python-libs#matplotlib#legend
읽어보기→
#95

Seaborn - basic

seaborn을 이용해봅시다. 일반적으로 python에서 그림을 그릴 때, 를 많이 이용합니다만, 도 괜찮다고 합니다. 특히, 똑같은 그림을 그린다고 해도, 단순히 이 앞에 만 덧붙여줘도 그림이 훨씬 예쁜게 나온다는 장점이 있습니다. 제가 그 차...

•⏱ 약 10분 소요•
#python#python-libs#seaborn#matplotlib
읽어보기→
#96

Handling missing value

missing value를 다뤄봅시다. kaggle에서 데이터를 예측하다 보면, 에러가 아주 많이 발생합니다. 그 이유는, kaggle에서 제공되는 데이터들에 빈 공간이 너무 많기 때문이죠. 그냥 알아서! 빈 공간은 다 제외하고 주면 안됩니까! ...

•⏱ 약 8분 소요•
#python-libs#python#pandas#missing-value
읽어보기→
#97

Data의 skewness를 삭제합시다.

skewed data를 어떻게 해결할까요. 예측 문제라는 것은 결국 "A로부터 B를 추론하는 것"인데, A의 분포와 B의 분포가 다를 수 있습니다. 아니, 다르게 표현하면, A의 어떤 부분이 B를 매우 예측하는데, 그것이 A라는 변수 혹은 데이터...

•⏱ 약 6분 소요•
#python#skewness#python-libs#scipy
읽어보기→
#98

Data preprocessing 잘하기

data preprocessing 을 잘해보려고 합니다. skewness 해결, MinMaxScaler, robustScaler 등을 처리합니다. missing value도 다루어야 하는데, missing value의 경우는 상황에 따라 달라지는...

•⏱ 약 9분 소요•
#python#python-libs#scipy#skewness
읽어보기→
#99

Regression 결과를 평가해봅시다.

continous한 값을 예측하고 잘했는지 어떻게 평가할까요. 그러니까, 내가 예측하려는 것이 집의 가격, 주식의 가격 등 같은 값들이라고 하면, classification과는 다른 식으로 평가해야 합니다. 아주 간단하게는, 내가 예측한 값()과...

•⏱ 약 6분 소요•
#sklearn#python#python-libs#machin-learning
읽어보기→
#100

Sklearn.mlpregressor는 쓸만한가요?

classification시에 neural network이 좋다는 것은 너무 당연하고도 명백한 사실인데, neural network는 쓸만한건지 사실 잘 모르겠습니다. regression을 할때, 한번씩 를 사용하는데, 이게 정확도가 지나치게 떨...

•⏱ 약 7분 소요•
#python#python-libs#sklearn#regression
읽어보기→
#101

집 가격을 예측해 봅시다.

kaggle) 집 가격을 잘 예측해봅시다. 이 문제는 간단히 말하면, regression 문제네요. 이전에 풀어본 mnist, titanic의 경우는 classification의 문제에 속했는데, 이 문제는 regression 문제입니다. 다 좋...

•⏱ 약 42분 소요•
#kaggle#machine-learning#python#python-libs
읽어보기→
#102

Simple binary classification

간단한, classification을 풉니다. kaggle에 있는 초보자를 위한 컴페티션 중에 이 아이를 골랐습니다. 물론, 이미 끝난 컴페티션이어서, 큰 의미는 없지만, 얼마나 할 수 있는지 보려고 합니다. 아쉽게도, 그래서 kernel이 없습...

•⏱ 약 21분 소요•
#python#python-libs#sklearn#classification
읽어보기→
#103

Mnist 이미지 인식하기

mnist 이미지 분류기 만들기 mnist는 이제 너무너무도 유명한 데이터이긴 하지만 아무튼. mnist는 사람이 손으로 0-9까지 쓴 hand-written number digit 데이터입니다. 공개로 풀려 있기 때문에, 많은 머신러닝 초보자들...

•⏱ 약 67분 소요•
#kaggle#python#machine-learning#mnist
읽어보기→
#104

Imdb movie review를 분석합니다 - 1편

movie review분석하기!!! 요즘은 kaggle에 할만한 컴페티션을 찾아 다닙니다. 찾다가, movie review가 있고, 어떻게 해야 하는지에 대해서도 매우 자세하게 나와 있는 것 같아서, 한번 해보려고 해요!! 뭔가 계속 kaggle...

•⏱ 약 35분 소요•
#kaggle#python#python-libs#word2vec
읽어보기→
#105

Bike sharind demand를 맞춰봅시다!

kaggle) bike sharing demand를 맞춰봅시다! 아주 행복하게도, missing value가 없습니다 개좋음!! Linear model로 했을때보다, randomforest를 넣었을때 훨씬 좋게 나옵니다. 사실 너무 당연한 거죠....

•⏱ 약 10분 소요•
#python#kaggle#machine-learning#python-libs
읽어보기→
#106

Numpy에서 randomness 이용하기

python numpy에 다양한 random 함수들이 있는데, 이를 어떻게 이용할 수 있을지를 정리합니다. just do it. 뭐 쓰고 보니 쓸게 많을줄 알았는데 매우 간단하군요. reference

•⏱ 약 3분 소요•
#python#python-libs#random#numpy
읽어보기→
#107

Sklearn에서 custom metric으로 모델 선정하기

custom score 만들기 에 이미 좋은 Metric들이 많기는 합니다만, 경우에 따라서 제가 직접 scoring을 하고 싶을때가 있습니다. 뿐만 아니라, 제가 직접 만든 metric을 이용해서, model을 선택하고 싶을때가 있습니다. 에서...

•⏱ 약 5분 소요•
#python#sklearn#machine-learning
읽어보기→
#108

Time series의 stationarity를 체크해봅시다.

말로 하기는 좀 귀찮으니까, 그림을 봅시다 허허. 아래 그림을 보시면, stationary time series와 non-stationary time series가 나타나 있습니다. 간단히 말하면, stationary의 경우는 시간이 변해도, 일...

•⏱ 약 9분 소요•
#python#python-libs#time-series#stationarity
읽어보기→
#109

3d plotting하기

3d로 플로팅합시다. 예전에 matlab를 쓸 때, 로 뭔가 화려한 surface를 그려낸 기억이 나네요. 비슷하게 여기서도 할 수 있을 것 같아서 찾아보니, 너무 당연하지만 있습니다 하하하핫. 정리하고 보니 매우 간단하기는 하네요 하하핫 wra...

•⏱ 약 4분 소요•
#python#python-libs#matplotlib#3d-plotting
읽어보기→
#110

Random walk를 정리해봅시다.

random walk 일반적으로 random walk는 현재의 상태가 이전의 상태에 영향을 받으며 랜덤하게 움직이는 경우를 말합니다. 만약 10 step의 random walk라면, 각각의 값이 따로 있는 것이 아니라, sequential하게 이...

•⏱ 약 13분 소요•
#python#python-libs#random-walk#matplotlib
읽어보기→
#111

Pandas에서 time series 활용하기

최근에 kaggle에서 뭘 좀 하다가, time series 데이터를 분석할 일이 있었습니다. 생각해보니, 예전에도 datacamp에서 사용했던 적이 있었는데, 아무튼 기본적인 time series 활용법을 정리해두려고 합니당. 우선 제가 참고한...

•⏱ 약 5분 소요•
#python#python-libs#pandas#time-series
읽어보기→
#112

Optimization 기본

gradient decent method and plotting with matplotlib datascience school의 자료를 보다가 최적화라는 포스트를 보고, 정리를 해야 할것 같았습니당. 계속 이어지는 자료이긴 한데, 여기서는 gra...

•⏱ 약 8분 소요•
#python#python-libs#optimization#matplotlib
읽어보기→
#113

Sympy의 기본적인 사용법

sympy를 사용해봅시다. 고등학교 때 많이 풀었던 최소값/최대값 문제가 생각나시는지 모르겠네요. 그때는 수학 정말 잘했는데 지금은 거의 수포자간지라....아무튼. 그때 극한값을 구하려면 미분을 했었어야 했습니다. 파이썬에서도 방정식을 세우고, ...

•⏱ 약 5분 소요•
#python#python-libs#sympy#numpy
읽어보기→
#114

Matplotlib로 부등식 그려보기

inequality 를 matplotlib에 표현하기 요즘 다시 python으로 LP 푸는 법을 다시 정리해보고 있는데, 그리다보니 부등식을 2차원에 그려보는 일이 필요한 것 같아요. 손으로 그리는게 훨씬 빠른데...아무튼. 가능하면 좀 gene...

•⏱ 약 3분 소요•
#python#python-libs#matplotlib
읽어보기→
#115

LP and QP 풀기

다시 최적화시간이 생각납니다 하하핫. LP는 Linear Programming의 약자인데, 간단히 말하면 연립방정식의 해를 찾는 것라고 해도 아무 문제가 없습니다. LP의 기본적인 형태는 대략 다음과 같습니다. 목적식이 있고, 이 목적식을 만족하...

•⏱ 약 3분 소요•
#python#optimization#python-libs#scipy
읽어보기→
#116

Optimization with constraint

constraint가 있을 경우에 optimization 방법 이전에는 constraint가 없는 상황에서, 비교적 간단하게 최적화를 했습니다. constraint가 없는 경우에는 그냥 그려진 objective function만을 미분하여 gra...

•⏱ 약 5분 소요•
#python#scipy#python-libs#optimization
읽어보기→
#117

Scipy를 이용하여 최적화를 해봅시다.

scipy를 이용한 optimization. 제가 공부한 포스트에서는 로 importing한 다음 를 이용하는데, 요즘에는 이게 막혀 있는 것 같아요. 묘하게도 반드시 와 같은 방식으로 사용해야 합니다. 아무튼, 이전에 포스팅한 sympy에 비해...

•⏱ 약 4분 소요•
#python#python-libs#optimization#scipy
읽어보기→
#118

Plt annotation하기

그림에 주석을 달아 봅시다. histogram, scatter plot 등에서 파워포인트처럼 설명을 달아보고 싶을 때가 있습니다. : 그냥 텍스트를 좌표 상에 올리는 식인데, - argument를 함께 넘겨서, 글상자를 만들어줄 수도 있고 : 텍...

•⏱ 약 3분 소요•
#python#python-libs#annotation#matplolib
읽어보기→
#119

Quiver plot을 사용해봅시다.

quiver plot으로 gradient vector 표현하기 찾다보니, quiver plot이라는 것이 matplotlib에 있더군요. quiver의 뜻은 '화살통'...'진동 등이 떨리는 것'이라고 나와 있는데...무슨 말인지는 잘 모르겠고,...

•⏱ 약 4분 소요•
#python#python-libs#matplotlib#sympy
읽어보기→
#120

Plt에서 custom marker를 사용할 수 있을까요?

plt로 그림을 그리는 중에 marker를 사용하다보니 조금 더 예쁘게, 정확하게는 상황에 맞게 그려보고 싶다는 생각을 했습니다. 현재는 아주 간단하게, 커피를 얼마나 먹었는지 패턴을 정리했는데, marker를 커피 icon으로 할 수는 없을까?...

•⏱ 약 4분 소요•
#python#python-libs#matplotlib#marker
읽어보기→
#121

X-axis를 공유하지만 y-axis는 공유하지 않는 fig

x-axis는 공유하지만, y-axis는 공유하지 않도록 그림을 그리고 싶을때가 있습니다. 이 때 를 통해 이를 가능하게 해줄 수 있습니다. 매우 간단하지만, 저는 자주 까먹기 때문에 제가 찾아보려고 정리해두었습니다 하하하핫. do it 중요한 ...

•⏱ 약 2분 소요•
#python#python-libs#matplotlib#twinx
읽어보기→
#122

Student-t dist를 알아보겠습니다.

solving fat-tail with student-t 예측 문제들에서는 사실 이 아이들이 student-t를 따르든지, normal dist를 따르든지 큰 상관이 없을 것 같습니다만(exp등을 따르면 예측률에 약간 차이가 발생할 수는 있지만)...

•⏱ 약 3분 소요•
#python#python-libs#probability#student-t
읽어보기→
#123

데이터의 분포를 검정해봅시다.

데이터를 분석하기 전에 개별 데이터 칼럼들에 대해서 데이터 정리를 해줍니다. skewness가 있는지, qqplot상 normality를 가지는지를 체크해보죠. 그런데, 이건 어느 정도 그냥 그림으로 때려 보는 거고, 엄밀하게 'normality...

•⏱ 약 5분 소요•
#python#python-libs#data-sceienc#hypothesis-test
읽어보기→
#124

Q-Q plot을 이용한 normality test

현재 데이터 분포가 가우시안분포를 따르는가? 다양한 확률분포가 있는데, 그중에서, 수치들을 '가우시안 분포'를 따른다고 가정하고 모델링할 때가 많습니다. 그런데, 이건 가정이잖아요. 편하기는 한데, 정말 해당 데이터가 "가우시안 분포"를 정말 따...

•⏱ 약 8분 소요•
#python#python-libs#scipy#normality
읽어보기→
#125

현재 데이터의 모수를 어떻게 추정할 수 있을까요?

그냥 .std() 같은걸로 하면 안되요? 네, 됩니다. 으로 평균을 구해도 상관없어요. 요런 방법을 유식하게 method of moment라고 한다고들 합니다. 그런데, 여기서는 다른 방법으로 할 거에요. 무엇이냐면, 대략, 가장 그럴법한 놈 찾...

•⏱ 약 5분 소요•
#python#python-libs#mle#parameter-estimation
읽어보기→
#126

Matplotlib에서 axis를 제거해봅시다.

위쪽 오른쪽 등 일부분의 axis만 없애고 싶을때는? axis때문에 그림이 별로 예쁘지 않게 보일 때가 있어요. 삭제해야 괜찮을 때가 있는데, 전부다 삭제하는 건 싫을 때도 있구요. 간단하게 를 해버리면, 까지 모두 없어지는 경우가 있어서, 부분...

•⏱ 약 2분 소요•
#python#python-libs#matplotlib#axis
읽어보기→
#127

3개월동안 먹은 커피 기록을 분석합니다.

3개월동안 마신 커피 데이터를 분석합니다 3월 초부터 6월 19일까지 저는 잠시 대학원을 떠나 집에서 머물고 있었습니다. 저는 집에서는 공부를 못해서 늘 집앞에서 커피를 먹으면서 공부를 했습니다. 문득 카드 사용 내역을 보는데, 이걸 활용해서 뭔...

•⏱ 약 12분 소요•
#python#python-libs#data-science#quantify-myself
읽어보기→
#128

Dot language로 nn 그려서 보기

뉴럴넷이 복잡해서 지금 제대로 그리고 있는지 모르겠을때. 그럴 때, neural network를 그려보면 좋겠다는 생각을 합니다. 에 가 있는데, 이건 좀 다르고, 그냥 간단하게 어떤 node에서 어떤 node로 흘러가는가? 만 보고 싶다는 생각...

•⏱ 약 3분 소요•
#python#dot#python-libs#machine-learning
읽어보기→
#129

확률적 언어 모형을 만들어서, 그럴듯한 문장을 생성합니다.

확률모형을 이용하여 그럴법한 문장을 만들어봅시다 이 포스트를 참고하여 코드와 내용을 아주 조금 수정하였습니다. 저는 보통 말을 할때, 전체 문장을 다 만든 다음에 말을 하지 않아요. 약간 말을 하면서 뱉어진 단어가, 새로운 단어를 끌고 온다는 느...

•⏱ 약 16분 소요•
#python#python-libs#nltk#numpy
읽어보기→
#130

간단하게 rnn을 만들어 봅시다.

간단한 rnn을 그려 봅시다. 이 포스트의 내용을 참고하여, 정리하였습니다. 여러번 포스트에서 반복적으로 얘기하는 것 같기는 하지만, 데이터 예측, 데이터 분석, 머신러닝 아무튼 이런 모든 말들을 축약하면, "A를 활용해서 B를 예측하는 것" 입...

•⏱ 약 8분 소요•
#python#python-libs#matplotlib#numpy
읽어보기→
#131

GAN을 사용해 봅시다.

GAN이 뭡니까. 이 포스트는 이 포스트를 참고하여 작성되었음을 명확하게 밝힙니다. GAN은 Generative Adversarial Network의 약자인데, 이를 한국말로 말하면, "생성적 적대적 네트워크"라고 할 수 있는데, 그냥 영어로 G...

•⏱ 약 44분 소요•
#python#python-libs#keras#machine-learning
읽어보기→
#132

Keras를 이용해서, sequence classification 해보기.

sequence classificattion?? 우선, 이 내용은 이 포스트를 아주 많이 참고하여 작성되었음을 명확하게 밝힙니다. RNN으로 만들 수 있는 다양한 모델이 있습니다. 일반적으로는 RNN은 sequence to sequence(기계 ...

•⏱ 약 15분 소요•
#classification#python#python-libs#keras
읽어보기→
#133

Keras의 model을 파봅시다.

model class가 뭔가요. 저는 지금까지 keras를 이용해서, neural network를 설계할 때, 을 사용했습니다. 어차피 제가 만드는 뉴럴넷 모델들은 그저 선형적으로 쭉 이어져 내려올 뿐이었거든요(mnist를 이용한 image cl...

•⏱ 약 20분 소요•
#python#python-libs#keras
읽어보기→
#134

Callable object? callable 객체?

keras로 코딩을 하다가, 와 의 차이가 궁금해서 찾아보고 있었습니다. 그런데 제가 참고한 포스트에서 다음을 언급하더군요. Keras의 Model 클래스 객체와 레이어(Tensor) 객체는 callable 객체. 이게 무슨 말인가? 싶어서 간단...

•⏱ 약 3분 소요•
#python#object-orietned-programming#oop
읽어보기→
#135

Auto-encoding, decoding

최근에 Generative Adversarial Network를 공부했습니다. 슥 만들고 보니까, 예전에 한 번 슬쩍 봤던, Auto encoder/decoder와 유사하다는 생각이 들었습니다. - 제가 이전에 했던 것은 GAN을 이용해서 MNI...

•⏱ 약 54분 소요•
#python#python-libs#machine-learning#keras
읽어보기→
#136

Matrix decomposition

원래는 matrix decomposition을 해서, 이후에 또 어디에 쓰일 수 있다, 뭐 이런 부분까지 쓰려고 했는데, 정작 정리하고 나니, 그부분을 쓰는게 모호해지더라구요. 그냥, 필요에 따라서 행렬방정시에서 계산을 좀 효율적으로 하거나 하는...

•⏱ 약 4분 소요•
#python#python-libs#numpy#matrix-decomposition
읽어보기→
#137

Conda command를 정리해봅니다.

오늘 또 파이썬을 갈아엎었습니다 사실 python은 매우 많은 종류의 라이브러리들을 쓸 수 있다는 측면에서 매우 강력하지만, 그만큼 라이브러리들의 버전관리, 충돌 문제들이 효과적으로 핸들링되지 못하여, 번거로운 일들이 많습니다. 오늘은 "jupy...

•⏱ 약 4분 소요•
#python#conda#anaconda
읽어보기→
#138

Jupyter notebook 커스토마이징하기.

나는 갑자기 왜 jupyter notebook 설정을 바꾸었나 최근에 뭘 코딩하다 보니까, 아나콘다를 새롭게 업데이트해야 되더라구요. 몇 가지 라이브러리만 하나씩 업데이트하면 좋았을 것을, 저는 개념없이, 통째로 코딩해버렸습니다....하하하 그 ...

•⏱ 약 6분 소요•
#python#python-libs#css#jupyter-notebook
읽어보기→
#139

Turtle로 그림그리기

turtle로 그림을 그립시다 turtle로 gif를 만들 수 있다고 해서 한번 사용해보려고 합니다. 아주 예전에 코세라에서 turtle을 사용한 적이 있는데, 그 이후로는 처음이군요. reinforcement를 요즘 공부하고 있는데, 간단한 그...

•⏱ 약 2분 소요•
#python#python-libs#turtle
읽어보기→
#140

강화학습을 공부해봅시다. 2편

reinforcement learning - stochastic world: FrozenLake-v0 이제, stochastic world에서 학습해봅시다. 얼음판에서는 미끄러지기 때문에, 제가 가라는 대로 잘 가지 않아요. 그래서, 이전에는 일...

•⏱ 약 8분 소요•
#reinforcement-learning#python#python-libs#gym
읽어보기→
#141

Matplotlib 테마 바꾸기

최근에 jupyter notebook에서 jupyter lab으로 변경했습니다. 그리고 jupyter lab의 까만 화면으로 변경했는데, 바꾸고 보니까, 에서 그림을 그릴 때, tick이 잘 안보이는 문제가 있어요. 기본적으로 는 그림이 하얀색 ...

•⏱ 약 3분 소요•
#matplotlib#python-libs#python#theme
읽어보기→
#142

여러분 jupyter lab을 씁시다!!!

갑자기 jupyter notebook이 아니라 lab이 실행되었어요. 이유는 모르겠지만, localhost:8888에 접속했는데, 갑자기 jupyter notebook이 아니라, jupyter lab에 접속되었습니다. 흠. 아마도 - 제가 어제 ...

•⏱ 약 4분 소요•
#jupyter-notebook#jupyter-lab#python
읽어보기→
#143

강화학습을 공부해봅시다. 1편

강화학습이란 무엇인가. 우선, 이 포스트는 김성훈 교수님의 강의 중 lecture 1-4까지를 공부하고 정리한 내용입니다. 강화학습은 간단히 말해서, 바둑, 오목, 미로 찾기 등에서 가장 효율적인 action 순서를 찾는 트레이닝 방법이라고 말할...

•⏱ 약 14분 소요•
#reinforcement-learning#python#python-libs#gym
읽어보기→
#144

강화학습을 공부해봅시다. 3편

진짜 게임들에 적용하려면. 우리는 좀전까지 Frozen world를 대상으로 강화학습을 수행했습니다. 그리고 Q(quality) table을 만들어서, 매 스텝이 reward에 얼마나 기여하는지를 측정했죠. 이것이 가능했던 것은, 는 4이고, 는...

•⏱ 약 12분 소요•
#reinforcement-learning#python#python-libs#gym
읽어보기→
#145

Matplotlib 의 figure를 np.array로 변환합시다.

매우 간단합니다. 로 그림을 그리다 보면, 가끔 figure를 로 변환하고 싶을 때가 있습니다. PIL이나 다른 라이브러리를 이용해서 이미지에 현재 figure에 손을 좀 보고 싶은데, 그러려면 로 변환해야 하거든요. 아무튼 그럴때 다음 코드로 ...

•⏱ 약 2분 소요•
#python#python-libs#numpy#matplotlib
읽어보기→
#146

Svg는 무엇이고, 또 파이썬에서 어떻게 읽을 수 있나요?

우선, SVG가 뭔가요. 저는 파이썬으로 코딩하고, 그 결과를 마크다운으로 작성해서 블로그에 올립니다. 보통 파이썬으로 코딩한 결과는 로 저장하는데, 그때 확장자를 매번, 로 합니다. 왜냐면, 이렇게 해야 화질이 항상 높거든요 로 저장하는 것이 ...

•⏱ 약 4분 소요•
#python#python-libs#image#svg
읽어보기→
#147

Image를 섞어서 새로운 이미지를 만듭니다.

두 이미지를 섞어보려고 합니다. cv2, pillow에서 이미지를 섞을 때, 특별한 함수를 쓰던데, 사실 둘다 np.array라는걸 가정하고 보면 이게 뭐가 어렵나 싶어요. 그냥 적당한 weight로 곱하면 되지 안 그렇습니까? 아래처럼 적절하게...

•⏱ 약 2분 소요•
#python#python-libs#image#pil
읽어보기→
#148

파이썬에서 image를 처리합시다.

왜 갑자기 image인가요 음...저는 약간 뭘 하다가 늘 삼천포로 빠지는 스타일입니다. 지금도 원래는 을 이용해서 강화학습을 하다가 넘어왔어요. 이게 왜 그런거냐면, 을 이용해서 학습을 할때, 현재 어떻게 되고 있는 상황을 렌더링하는 것이 필요...

•⏱ 약 17분 소요•
#python#python-libs#image#pillow
읽어보기→
#149

Plt.figure()의 parameter를 조정해봅시다.

plt.figure()의 파라미터 조정하기. 를 사용할 때 사실 보통 만을 쓰기는 하는데, 내부에 보면 다양한 파라미터들이 있어요. 이걸 건드리면 그림을 조금 더 마음에 들게 뽑을 수 있습니다. 사실 매번 그림을 로 처리하는 경우에는, plt.f...

•⏱ 약 3분 소요•
#python#python-libs#matplotlib#figure
읽어보기→
#150

Binary string을 string으로 바꾸기

binary string을 string으로 바꿉시다 python에서 직접 bash command를 사용할 일이 있습니다. 저는 module을 사용해서 직접 커맨드를 치곤 합니다. 그런데, 이 때 결과물을 보면, 이 아니라 format으로 들어오는...

•⏱ 약 5분 소요•
#python#python-libs#binary#string
읽어보기→
#151

파이썬에서 이미지를 저장할 때 공백을 없앱시다.

그림을 저장할 때, 공백등을 모두 없애서 저장합시다. 차트 같은 것을 그릴 때는 별 문제가 없는데, 차트가 아니라, 말 그대로 이미지, 를 통해서 보여진 이미지를 변형해서 다시 이미지 파일로 넣어줄 때는 좀 문제가 있습니다. margin, pad...

•⏱ 약 4분 소요•
#python#python-libs#image#matplotlib
읽어보기→
#152

Python에서 이미지 비디오로 변환하기.

파이썬에서 이미지들을 비디오로 변환하기 파이썬으로 그림을 그리다보면, 비디오를 만들고 싶을때가 있습니다. 예를 들면, scatter 그림을 여러 개 찍어서 일종의 애니메이션처럼 만들고 싶을 때도 있고, 데이터가 추가되면서, optimum이 어디로...

•⏱ 약 6분 소요•
#python#python-libs#jupyter-notebook#html
읽어보기→
#153

Img file들로부터 gif로 변형하기

이미지 파일을 gif로 변형합니다. 그동안, 나름대로 를 그대로 비디오로 만들어주는 형식으로 활용을 했는데, 이게 잘 안되는 것 같아요. 그래서, 그냥 이미지 파일들을 죽 만든 다음에, 그 이미지들을 읽어서 비디오로 만들어주는 형식이 훨씬 효율적...

•⏱ 약 4분 소요•
#python#image#gif#python-libs
읽어보기→
#154

네트워크 변화 비디오로 만들기

그래프의 변화를 video로 보려고 합니다. 저는 네트워크를 분석하는 일을 연구실에서 많이 수행했습니다. 예전에는 netminer를 이용했는데, 요즘에는 를 많이 이용합니다. 아무튼, 네트워크가 어떻게 변하는지는 그림보다는 연속된 그림을 통해서 ...

•⏱ 약 9분 소요•
#networx#python#python-libs#matplotlib
읽어보기→
#155

Python의 os module 사용하기

python - os lib 사용하기 코딩하다 보면, 로컬에 있는 파일을 지우고, 만들고 싶을 때가 있습니다. 저의 경우는, 비디오나 gif를 만드려고 이미지를 여러 개 만들 때가 있는데, 이럴 때 이미지들은 다 임시로 만들어진 파일들이니까요, ...

•⏱ 약 5분 소요•
#python#os#python-libs#bash
읽어보기→
#156

Binary data란 무엇인가?

binary data는 무엇인가? 엄밀하게 따지면, 모든 data 혹은 파일은 binary data입니다. - 모든 텍스트파일은 binary file, - 그러나, 모든 binary file이 텍스트 파일인 것은 아님 아무튼, 그냥 binary로...

•⏱ 약 9분 소요•
#binary-data#bin#python#base64
읽어보기→
#157

Python에서 데이터 암호화하기

intro http와 https 간의 차이점을 정리하고 있었는데, https는 공개키 암호화방식을 사용하여 데이터를 암호화한다고 하더라고요. 그래서, 여기서 '공개키 암호화방식'이 무엇인지 정리해보려고 합니다. 뿐만 아니라, 간단하게 python...

•⏱ 약 15분 소요•
#python#python-libs#rsa#aes
읽어보기→
#158

SHA를 알아보고 사용해봅시다.

Hash function 우선 HASH라는 것은 "어떤 특정한 input에 대해서 어떤 output을 만들어내는 함수"를 말합니다. 여기서 중요한 것은 가급적 input에 따라서 output이 달라지게 표현될 수록(서로 다른 input에 대해서 ...

•⏱ 약 4분 소요•
#python#sha#hash#hashlib
읽어보기→
#159

다른 파이썬 코드 import하기

intro 예전에 작성해둔 파이썬 코드를 가져오고 싶을 때가 있습니다. 이걸 어떻게 할 수 있는지 정리했습니다. import code 일단 해당 코드 파일이 현재 코드파일과 같은 경로에 있어야 합니다. 코드 파일명을 그대로 import 하면 됩니...

•⏱ 약 4분 소요•
#python#python-libs
읽어보기→
#160

Python에서 main function 활용하기

intro - main function python 코드파일을 특히, 라이브러리의 python 팡리들을 보면 다음 코드를 종봉 보실 수 있습니다. C로 코딩을 해보신 분들은 이를 보면 바로 과 같은 코드가 떠오를 수 있죠. 이 아이는 정확하게 무...

•⏱ 약 2분 소요•
#python#python-libs
읽어보기→
#161

간단하게 folium을 이용하여 지도에 그림 그리기

간단하게 지도에 내 위치를 표시해봅시다. 간단하게, 지도에 위치를 표시해보려고 합니다. 이라는 라이브러리는 Open Street Map을 이용해서 지도를 활용할 수 있게 해줍니다. - 그냥 오픈소스로 된 지도라고 생각해도 상관없습니다. 단 결과를...

•⏱ 약 1분 소요•
#python#python-libs#map#open-street-map
읽어보기→
#162

Flask로 html 상속 그리고 css 적용하기

intro 지난 번에는 아주 간단한 Flask 사용법을 알아보았는데, 이번에는 좀 더 복잡한 것을 알아보려고 합니다. 이 포스트의 내용을 많이 참고했습니다. html 상속하기 참고한 포스트에서는 html을 상속하는 형태로 html을 만들었습니다....

•⏱ 약 7분 소요•
#html#python#python-libs#flask
읽어보기→
#163

Flask로 웹 사이트 만들기 - basic

intro 연구실 과제로 간단하게 분석 도구를 만들어야 하는데, PyQT로 만들수도 있겠지만 별로 모양이 예쁘지 않은 것 같고요. 가능하면 웹으로 구현을 해보는 게 저한테도 도움이 될 것 같다는 생각이 들었습니다. 그래서 처음에는 django를 ...

•⏱ 약 9분 소요•
#python#python-libs#flask#web
읽어보기→
#164

지킬로 만든 블로그에서 {%%} 표시하기

flask로 공부한 내용을 마크다운으로 작성하고, 지킬로 렌더링을 하려는데. 자꾸 안되는 겁니다. 발생하는 에러는 대략 다음과 같아요. 를 표시하려고 하면 자꾸 에러가 발생하는 것이죠. liquid liquid는 지킬에서 페이지를 렌더링할 때 이...

•⏱ 약 2분 소요•
#flask#liquid#jekyll#blog
읽어보기→
#165

Matplotlib와 flask 연결하기

matplotlib와 flask를 연결해보려고 합니다. 처음에는 매우 간단하게 다음의 순서로 진행하면 된다고 생각했는데, 잘 안되는 것 같아요. - call url - 를 이용해서 이미지 저장 - 을 사용하여 html 리턴 sendfile 브라우...

•⏱ 약 13분 소요•
#python#python-libs#flask#matplotlib
읽어보기→
#166

Flask에서 multi-threading 세팅하기

flask 서버에 multi-threading 세팅하기 flask를 서버로 사용하면서, html 페이지에 여러 개의 matplotlib의 figure를 embed하고 싶었습니다. 다음과 같은 html template가 있을 경우 mean, var...

•⏱ 약 8분 소요•
#python#python-libs#matplotlib#flask
읽어보기→
#167

Flask에서 파일 읽고 결과 뿌려주기

flask가 텍스트 파일을 읽고 웹페이지에 표시하게 해줍시다. 저는 이후에 excel을 읽어서 데이터 처리를 한 다음 웹페이지로 표시해주는 프로그램을 만들어보려고 합니다. 그러려면 아주 간단하게 flask 내부에서 파일을 읽고 보여줄 수 있는지를...

•⏱ 약 3분 소요•
#python#flask#python-libs#html
읽어보기→
#168

Flask와 pandas를 연결해봅시다.

flask와 pd.DataFrame 연동하기 저는 데이터는 일단 엑셀 파일로 들어온다고 가정합니다. 따라서 를 이용해서 엑셀을 dataframe로 변환해서 처리하는 것이 반드시 필요하죠. flask에서 dataframe를 연동하는 것에 문제가 없...

•⏱ 약 25분 소요•
#flask#pandas#python#python-libs
읽어보기→
#169

Form 형식을 통해 값을 입력받고 뭔가 출력하기

intro 와 같은 방식으로 url에 값을 넘겨서 그 값에 따라서 동적인 페이지를 만들어서 진행할 수도 있지만, 웹페이지 에서 직접 값을 입력받는 형태로 만들어보고 싶었습니다. 예를 들면 다음과 같은 방식으로 처리하고 싶은 것이죠. 우선 GET와...

•⏱ 약 15분 소요•
#python#python-libs#flask#html
읽어보기→
#170

Callback은 무엇인가?

callback 함수란 무엇인가? callback 함수가 무엇인지 모르겠어서 정리해보기로 했습니다. 여전히, higher-order function과의 차이점을 잘 모르겠는데 혹시 아시면 알려주시면 감사하겠습니다. 한글 위키피디아 한글 위키피디아...

•⏱ 약 4분 소요•
#python#python-libs#callback#functional-programming
읽어보기→
#171

Python에서 simpy를 사용하여 시뮬레이션해보기

파이썬에서 시뮬레이션해보기 원래는 페트리넷을 이용해서 시뮬레이션을 돌려보려고 했습니다만, 별로 쓸만한 것이 없는 것 같아요. SNAKES 라는 라이브러리가 있기는 한데, commit이 안된지 1년이 넘었기도 하고, 약간 python2 기반인 것 ...

•⏱ 약 1분 소요•
#python#python-libs#simpy
읽어보기→
#172

Python에서 한글 자음/모음 분해하기

intro 네트워크 분석을 하는데, 사람 이름이 많이 나와서 이를 코드화 하려고 해요. 그냥 뭐 이렇게도 할 수 있겠지만, 이보다는 사람 이니셜로 변경하면 좋을 것 같더라고요. 그래서 한글을 영어 이니셜로 변경(이승훈 ==> LSH) 하려는데 그...

•⏱ 약 9분 소요•
#python-libs#python#string#korean
읽어보기→
#173

Triangular dist.를 정리합니다.

어떤 분포로 시뮬레이션을 해야 하나 저는 business process를 연구합니다. 요즘에는 business process에서도 simulation쪽에 관심이 있는데, 개별 단위의 activity를 어떤 분포로 모델링해야 하는지를 고민하고 있습...

•⏱ 약 2분 소요•
#python#python-libs#numpy#distribution
읽어보기→
#174

파이썬에서 시뮬레이션을 해봅시다.

intro 연구하다가 간단하게 시뮬레이션을 돌릴 필요성이 있어서, 시뮬레이션을 파이썬에서 어떻게 지원하는지를 알아보았습니다. simpy라는 라이브러리가 있구요. 일단 이걸 설치합니다. simpy SimPy is a process-based dis...

•⏱ 약 12분 소요•
#python#python-libs#simulation#simpy
읽어보기→
#175

Simpy에서 resource를 사용해봅시다.

intro multiple processes want to use a resource of limited capacity. 복수의 프로세스는 제한된 용량을 가진 리소스를 서로 사용하려고 합니다. 아주 많은 경우가 이에 포함되는데, 은행 창구, 주...

•⏱ 약 10분 소요•
#python#python-libs#simpy#simulation
읽어보기→
#176

Simpy의 process interaction을 알아보자.

process interaction 이전에는 프로세스 간의 상호작용에 대해서는 고려하지 않았습니다만, 사실 하나의 프로세스가 수행되고 있을때, 다른 프로세스와의 상호작용이 있을 수도 있습니다. 간단하게, 하나의 프로세스 수행 중에, subproc...

•⏱ 약 11분 소요•
#python#python-libs#simpy#simulation
읽어보기→
#177

Random.expovariate == np.random.exponential

np.random을 사용합시당. 라는 코드를 발견했습니다. exponential 분포를 표현해주는 코드인 것 같은데, 에 비슷한 코드가 이미 있지 않을까? 하는 생각이 들었습니다. 다음 아래 코드는 동일합니다. - random에서는 를 사용하고,...

•⏱ 약 1분 소요•
#python#python-libs#numpy#random
읽어보기→
#178

Simpy conditional event 사용하기 - 은행 모델링 하기

example을 풀어봅시다. 정확히는 푸는 것은 아니고, simpy - example를 보면 다양한 예제가 있습니다. documentation을 읽어보는 것도 좋지만, 제 기준으로는 예제를 몇 번 풀어보면 더 잘 이해할 수 있을 것 같아요. 또 ...

•⏱ 약 8분 소요•
#python#python-libs#simpy#numpy
읽어보기→
#179

Simpy - 세차 프로세스 시뮬레이션

간단한거긴 한데.. 여기에 비슷한 코드가 있습니다. 차가 랜덤하게 세차장에 오고, 세차장에서 세차하고 차를 내보내는 형태의 아주 쉬운 시뮬레이션입니다. 단, resource를 class로 만들어서, 좀 편하게 사용할 수 있게 만들었다는 것이 차이...

•⏱ 약 8분 소요•
#python-libs#simpy#simulation#python
읽어보기→
#180

Astericks, args, kwargs in python

args, kwargs 를 정리해봅시다. 사실 decorator를 쓸 때가 아니면, 아직까지는 반드시 , 가 반드시 필요하다고 느낀 적이 없기는 한데, 다른 라이브러리들을 보다보면, , 를 사용하는 일들이 좀 있어요. 그래서 이참에 좀 다시 정리...

•⏱ 약 9분 소요•
#python#python-libs#args#kwargs
읽어보기→
#181

Numpyp - random multiple choice

중복없이 n개의 값을 뽑는 방법 바구니에 n개의 서로 다른 공이 들어 있습니다. 이 공에서 3개의 공을 뽑고싶은데 어떻게 코딩해야 하나요? 처음에는 약간 어렵게 다음처럼 해야 한다고 생각했는데요. 간단하게 그냥 있는 함수를 쓰면 됩니다 하하핫.

•⏱ 약 1분 소요•
#python#python-libs#random#choice
읽어보기→
#183

Simpy.PreemptiveResource로 우선순위 이용하기 - 머신 샵 모델링

우선순위에 따라 업무 처리하기 모든 업무에는 우선순위가 있습니다. priority가 2인 일을 하는 중에 priority가 1인 일이 들어오면, 1인 일을 우선 처리하고 다시 2로 돌아가야 하죠. simpy에서도 이를 지원하며, 이를 어떻게 활용...

•⏱ 약 12분 소요•
#python-libs#python#simpy#numpy
읽어보기→
#184

Simpy로 event 이용하기 - 영화관 모델링하기

intro 영화관에서 티켓을 파는 프로세스를 모델링하려고 합니다. 이전에 모델링한 예시들과 차이점이 있다면, 이 예시에서는 shared event를 이용합니다. 즉, 간단하게 이벤트를 일종의 전역변수로 두고, 이벤트가 succeed가 되면 다른 ...

•⏱ 약 11분 소요•
#python#python-libs#simpy#numpy
읽어보기→
#185

Simpy - Resource, Store 이용하기

앞서 말씀드린 바와 같이 에서는 Resource, Container, Store 라는 세 가지 종류의 리소스가 있습니다. - > Resources that can be used by a limited number of processes at a ...

•⏱ 약 12분 소요•
#python#python-libs#simpy#numpy
읽어보기→
#186

Collections - namedtuple

dictionary 보다 인덱싱이 편한 그것 솔직히 가 매우 유용한 자료구조이기는 한데, 매우 불편한 것이 값을 indexing할 때죠. 매번 과 같이 인덱싱해야 하는데, 이거 너무 귀찮아요. 따옴표 치는 것만 없어도 생산성이 죽 올라간다고!! ...

•⏱ 약 4분 소요•
#python#python-libs#collections#namedtuple
읽어보기→
#187

Python에서 출력시에 format 에 따라 다르게 출력하기

intro python에서 변수들을 출력할 때 다양한 형태로 출력하는 방법을 배워봅니다. older formatting 과거 python버전에서는 을 이용해서 다음과 같은 형태로 출력했습니다. 다만, PEP3101에 의하면, 이는 이후에 없어질 ...

•⏱ 약 3분 소요•
#python#python-basic#string#format
읽어보기→
#188

Simpy - PriorityStore

intro simpy의 를 파보겠습니다. 어떤 일을 수행할 때, 모든 일에는 우선순위가 있습니다. 마찬가지로 에서 값을 빼낼 때도, 우선순위에 맞춰서 빼낼 수 있으면 좋을 것 같습니다. 는 에서 할 때, 내부 item의 우선순위에 따라서 빼내는 ...

•⏱ 약 8분 소요•
#python#python-libs#simpy#numpy
읽어보기→
#189

Simpy - process communication

example illustration 다수의 프로세스가 동시에 수행되고 있을 때를 생각해봅시다. - Process A는 수행 중에 message1를 Process B에 보냅니다. - Process B는 알아서 수행하고 있다가, Process A가...

•⏱ 약 11분 소요•
#python#simpy#numpy#simulation
읽어보기→
#190

Plt.annotate의 화살표 특성 제어하기

arrow의 특성 제어하기 로 그림을 그린 다음에, 설명을 추가할 때 종종 를 사용해서 화살표를 그려줍니다. 그런데, 이때 화살표 특성을 추가하는 것이 낯설어서 기록해두려고 작성했습니다. 이렇게 변경할 수 있습니다. 하하핫 wrap-up 찾아보니...

•⏱ 약 2분 소요•
#python#python-libs#matplotlib#arrow
읽어보기→
#191

Python에서 구글 sheet 읽기

why read google sheet 분석해야 하는 데이터가 구글 시트에 있습니다. 물론 구글 시트에 있는 데이터를 csv로 다운받아서 분석해도 되기는 하는데, 그보다는 가능하다면, 구글에서 바로 긁어와서 처리하고 싶었습니다. 사실, 이게 더 ...

•⏱ 약 7분 소요•
#python#google#excel#python-libs
읽어보기→
#192

Pd.DataFrame를 function으로 그룹핑하기

dataframe을 function으로 그룹바이하기 을 사용하다보면 필요에 따라서 groupby를 사용할 일들이 있습니다. category로 구분된 칼럼이 존재한다면, 문제가 없지만 category로 된 칼럼이 없을때, 또 굳이 새로운 칼럼을 만...

•⏱ 약 3분 소요•
#python#pandas#dataframe#groupby
읽어보기→
#193

Plt.xticks 조절하기

그림에 tick 표시하기 에서 그림을 그릴 때, tick을 몇 개나, 또 어떤 label로 표현할지를 조절하고 싶을때 를 사용합니다. 간단하게 다음 코드를 보면 tick을 표시할 값, 그리고 해당 위치에 어떤 label을 작성할지 함께 넘겨줍니다...

•⏱ 약 2분 소요•
#python#python-libs#matplotlib#tick
읽어보기→
#194

Matplotlib에서 layer 순서 정하기

파워포인트에서 '맨 앞으로 옮기기'같은 거요. 파워포인트에서 폴리곤을 여러 개 그리고 뭐가 제일 앞에 나오는지, 뭐가 제일 뒤에 나오는지를 정하는 일이 있잖아요. 그럴때 파워포인트에서는 단순하게 '맨 앞으로 옮기기'뭐 이런걸로 했는데, matpl...

•⏱ 약 2분 소요•
#python#python-libs#matplotlib#zorder
읽어보기→
#195

Bar 차트 그리기

plt.bar 의 경우는 값 덩어리를 넘겨주면 알아서 bins으로 구분하여 그려주는 반면 의 경우는 x, y가 각각 존재하는 값을 넘겨준다고 생각하면 됩니다. 역시나 말로 설명하면 이상하군요. 아무튼 아래처럼 그려주고 변경할 수 있습니다.

•⏱ 약 2분 소요•
#python#python-libs#bar#matplotlib
읽어보기→
#196

Matplotlib 히스토그램 그리기

plt.hist 히스토그램은 아주 간단하게, 값이 들어있는 list를 input으로 받아서, 제가 입력한 bin의 개수만큼 바구니로 구분하여 bar 차트로 그려주는 것을 말합니다. 뭐 더 말할 것이 없긴 한데... 다음을 합니다. - plt.hi...

•⏱ 약 3분 소요•
#python#python-libs#matplotlib#histogram
읽어보기→
#197

Matplotlib pie 차트 그리기

파이 차트를 그립시다. 전체 중에서 % 비율이 어떻게 되는지 보고싶을 때는 pie chart를 그려 보는 것이 시각적으로 좋습니다. 그래서 간단하게 pie chart를 그리고, 특성을 어떻게 조절할 수 있는지 그렸습니다. 다음을 구현했어요 - 파...

•⏱ 약 3분 소요•
#python#python-libs#matplotlib#pie-chart
읽어보기→
#198

Python 잔소리꾼과 함께 코딩하기.

pylint aka 시어머니. c, java 등을 코딩하다가 파이썬으로 코딩하기 시작하면, 갑자기 신세계에 당도한 기분이죠. 변수에 타입을 지정할 필요도 없고, 알아서 잘 처리해주니까요. 이 문제는 짧게 짧게 코딩할 때는 별 문제가 없지만, 길게...

•⏱ 약 12분 소요•
#python#python-libs#pytlint#pep08
읽어보기→
#199

Networkx의 layout 정리하기

네트워크를 다양한 레이아웃에 따라서 2차원에 그리기. 에서 , 등으로 그림을 그릴 때는 이미 axis에서 어떤 좌표에 그림을 그리면 될지가 명확하게 나와 있습니다만, network에서는 개별 node에 좌표값이 없기 때문에 어디에 그려야 하는지 ...

•⏱ 약 10분 소요•
#networkx#python#python-libs#layout
읽어보기→
#200

Plt.legend의 font 변경하기

대부분의 plt 구성요소에서는 그냥 다음과 같이 진행합니다. 당연히 에서도 로 넘겨주면 된다고 생각했는데, 생각처럼 되지 않습니다. stackoverflow에도 약간 대답이 부실하더라구요. 처음 만들 때 값을 설정해서 한번에 넘겨주는 방식이 아니...

•⏱ 약 3분 소요•
#python#python-libs#matplotlib#legend
읽어보기→
#201

Try, except, finally

파이썬으로 코딩할 때 코딩을 깔끔하게 해주는 것은 매우 중요합니다. 단 두 줄, 세 줄을 쓴다고 하더라도 개별 두줄이 어떤 의미를 가지는지 구분해서 작성해주면 가독성이 훨씬 높아집니다. 특히, 코딩을 할때 많이 해주는 부분이 바로 , 구문입니다....

•⏱ 약 6분 소요•
#python#python-basic#try#except
읽어보기→
#202

Networkx의 노드, edge의 attribute 추가 및 업데이트하기

아주 간단합니다. 사실 너무 간단해서 굳이 이걸 포스팅할 필요가 있는가 라는 생각도 들긴 하는데..... 다음처럼 해당 node의 정보값(정확히는 attr dictionary)에 그대로 넣어주면 됩니다. 단 edge는 tuple이 key값으로 들어감

•⏱ 약 2분 소요•
#python#python-libs#networkx#network
읽어보기→
#203

네트워크에서 비슷한 그룹을 찾아봅시다.

네트워크에서 community 찾기 일단 이건 일종의 clustering이라고 생각하셔도 상관없습니다. 일단 점과 선으로 된 네트워크를 구성했을 때, 비슷한 집단끼리 묶어보고싶잖아요. 전체 네트워크만 보는 건 큰 의미가 없으니까 이걸 좀 비슷한 ...

•⏱ 약 28분 소요•
#python#python-libs#networkx#network
읽어보기→
#204

List 섞기.

리스트 내부 값을 섞읍시다. 간단하게 말 그대로, 리스트의 값들을 죽 섞는 것을 말합니다. 가끔 이런게 필요하죠. 를 이용하면 되긴 하는데, 아쉬운 것이, 값을 리턴해주는 형식이 아닙니다. 즉, 전달받은 array를 셔플해서 원래 메모리에 그대로...

•⏱ 약 2분 소요•
#python#python-libs#list#shuffle
읽어보기→
#205

Networkx의 bipartite 다루기

bipartite graph bipartie graph는 set A와 set B 간에는 연결되는데, A의 node a들 끼리 연결되거나, B의 node b들 끼리 연결되는 일이 없는 경우를 말합니다. 예를 들면, set A는 사람이고, set B...

•⏱ 약 7분 소요•
#python#python-libs#networkx#bipartite
읽어보기→
#206

Nx에서 random bipartite graph만들기

havelhakimigraph networkx에 라는 랜덤한 bipartite 그래프 생성기가 있습니다. 만약 bipartite set가 각각 5개, 3개 라면, 그 크기의 각 node의 deg sequence를 넘겨주면 그 deg들에 맞는 gr...

•⏱ 약 3분 소요•
#networkx#python#python-libs#bipartite
읽어보기→
#207

Networkx에서 graph를 만들고 relabeling하기

노드를 바꿔주기 networkx에는 꽤 괜찮은 random graph generator들이 많이 있습니다. 단 만들 때부터 node set를 정하고 만들기는 조금 어려워요. 그렇다면 일단 만든 다음에 바꿔주면 됩니다 하하핫 쉽죠. 바꿔주는 방법이...

•⏱ 약 4분 소요•
#python#python-libs#networkx#graph
읽어보기→
#208

Integer를 분할해봅시다.

정수를 여러 그룹으로 쪼개죠 이미 스택오버플로우에 잘 정리되어 있습니다. 제가 지금 정수를 다른 수들로 쪼개는 일이 필요해서 이용했는데, 그 참에 정리를 하려고 썼습니다. 참 신기하게, 코딩을 제대로 하려고 하다보면, 수학적인 개념들이 좀 들어가...

•⏱ 약 2분 소요•
#integer#partition#python
읽어보기→
#209

DiGraph를 arrow로 그립시다.

DiGraph DiGraph는 방향성이 있는 네트워크를 말합니다. 일반적인 graph라면 edge를 그냥 그리면 되는데, 방향성이 있는 graph는 화살표를 잘 그려줘야 합니다. arrow style은 여기에 볼 수 있는데, 각각 어떻게 나오는지...

•⏱ 약 3분 소요•
#python#python-libs#networkx#matplotlib
읽어보기→
#210

Networkx로 random tree 만들기

random tree 만들기 random tree를 만들거에요. tree라는 것은 parent, children를 가지는 스트럭쳐죠. 저는 parent, children로 node를 접근하는 건 만들지 않았습니다만, random 하게 tree를 ...

•⏱ 약 11분 소요•
#python#python-libs#tree#networkx
읽어보기→
#211

Plt.title의 위치 바꾸기.

title 위치 바꾸기 다른 일에는 별 문제가 없는데, heatmap을 그릴때는 종종 문제가 됩니다. 특히 xtick을 위쪽으로 두면 다음 그림에서처럼 xtick과 title이 겹쳐서 보기 흉해져요. 그림을 보면, title과 xtick이 겹쳐 ...

•⏱ 약 3분 소요•
#python-libs#python#matplotlib#heatmap
읽어보기→
#212

Float list로부터 mode 찾기

mode를 찾읍시다. 대상 데이터의 분포가 normal, exp, poisson 등 의 분포인 것을 확실하게 알 수 있으면 좋겠지만, business 환경에서는 이것을 아는게 좀 어려워요. 일단 데이터의 수도 적으니까요. 그래서 보통 triang...

•⏱ 약 2분 소요•
#python#mode#counter#math
읽어보기→
#213

Cairosvg 문제 해결하기

svg를 png로 바꾸고 있습니다. graphviz를 사용할 때, svg, png, pdf 로 모두 저장할 수 있지만, png로 저장할 때 dpi가 매우 낮게 설정되는 일들이 발생합니다. 어떤 글에서는 를 사용해서 dpi를 graph의 attri...

•⏱ 약 4분 소요•
#python#python-libs#svg#png
읽어보기→
#214

Graphviz 다시 설치하기

runtimerror 예전에도 맥에서 graphviz를 잘 실행했는데 오늘은 뭐가 잘 안되더군요. 에러는 다음과 같았습니다. 잘 모를 때는 그냥 검색을 해보면 되는데, 검색해보면 스택오버플로우에서 아주 잘 정리된 답변이 있습니다. 아래를 순서대로...

•⏱ 약 2분 소요•
#python#graphviz#python-libs#macos
읽어보기→
#215

5년동안 수집한 개인 인간관계 데이터를 분석합니다.

인간관계를 분석합니다. 이번에 파이콘 한국 2018에서 발표하게 되어 발표자료를 준비하고 있습니다. 일단 여기에는 그림은 들어가지 않을 예정이고, 코드만 정리해서 보여줄 예정입니다. 발표자료는 여기서 보실 수 있습니다. 아무래도 필요한 부분들을 ...

•⏱ 약 44분 소요•
#python-libs#python#matplotlib#numpy
읽어보기→
#216

Pyconkr2018 후기

파이콘 너무 좋아요 쿠쿠 작년에 이어 올해도 파이콘에 다녀 왔습니다. 작년에는 참가자였는데 올해는 어쩌다보니 발표도 하게 되었습니다. ‘어쩌다보니’라는 말이 약간 수동적이고 방어적으로 표현된 것 같은데, 정확하게는 작년에 파이콘을 다녀온 다음에 ...

•⏱ 약 3분 소요•
#pyconkr#pyconkr2018#pycon#python
읽어보기→
#217

Networkx graph tree 구조 예쁘게 그리기

tree에 적합한 layout을 찾습니다. networkx에는 다양한 layout이 있습니다만, tree 구조에 적합한 레이아웃은 없어요(정확히는 없다고 생각했습니다). 그런데 사실 없다는게, 제 입장에서는 말이 안되서 한참 찾았는데, 찾다보니 ...

•⏱ 약 8분 소요•
#python#python-libs#networkx#tree
읽어보기→
#218

Networkx의 random tree 만드는 함수 정리

random하게 tree를 만듭니다. 예전에 제가 직접 random하게 tree를 만들어주는 코드를 만들었습니다. random하게 각 level별 node의 수를 정하고 children의 수도 랜덤하게 정해서 진행했는데, 생각보다 만드는데 시간이...

•⏱ 약 5분 소요•
#python#python-libs#networkx#tree
읽어보기→
#219

Nx의 layout을 rescaling합니다.

rescaling layout networkx로 네트워크를 시각화할 때 다양한 layout을 씁니다. 보통 쓰는 spring, spectral, shell 등의 레이아웃에는 문제가 없는데, 아래와 같은 layout을 사용할때는 0.0과 1.0사이...

•⏱ 약 8분 소요•
#networkx#python#python-libs#layout
읽어보기→
#220

Nx.graph가 tree일 때 root, level 찾기

tree에서 Root 찾기 networkx의 를 사용해서 tree를 만들고 관리하는데, 그때 적절한 root를 찾는 것이 중요해요. 또 해당 root를 중심으로 다른 node들이 얼마나 멀리 떨어져 있는지를 파악하는 것도 중요하구요. 그래서 아래...

•⏱ 약 3분 소요•
#python#python-libs#networkx#tree
읽어보기→
#221

Graphviz로 만든 그림을 jupyter notebook에 embed하기

jupyter notebook에 그림을 넣고 싶어요. graphviz로 그림을 만드는 함수를 다음처럼 정의했습니다. 그런데, 저는 경우에 따라서 한 셀 내에서 여러 그림을 동시에 보여주려고 하고 있거든요. 따라서 다른 방법을 모색했습니다. usi...

•⏱ 약 2분 소요•
#python#python-libs#networkx#graphviz
읽어보기→
#222

Np.random.seed in jupyter notebook

인트로 저는 jupyter notebook에서 코딩을 합니다. 경우에 따라서, jupyter notebook이 불편하다고 느끼는 사람들도 있어요. 전통적인 IDE들과는 다르게, 브라우저에서 돌아가는 것도 그렇고, cell별로 코딩을 하는데, ce...

•⏱ 약 1분 소요•
#python#python-libs#numpy#jupyter-notebook
읽어보기→
#223

Nx의 graph를 pygraphviz로 변경해서 그리기

간단합니다. 보통 때는 상관이 없는데, tree 구조를 그릴 때는 graphviz의 레이아웃이 그림이 더 이쁘거든요. 그래서 간단하게 변경하는 코드를 추가합니다. 두잇 간단합니다. 밑에 주석처리한 코드는 그림을 원하는 곳에 저장하고 싶을 때 씁니...

•⏱ 약 2분 소요•
#python#python-libs#graphviz#networkx
읽어보기→
#224

Graph의 similarity는 어떻게 계산할까요.

edit-distance "abc", "abcd"는 얼마나 비슷할까요? 혹은 정량적으로 어떻게 비슷한 정도를 측정할 수 있을까요? 간단하게 두 스트링을 비교해보면 캐릭터 하나만 추가되어있는 것을 알 수 있습니다. 즉, '하나만 지우면 같아질 것 ...

•⏱ 약 7분 소요•
#python#python-libs#networkx#similarity
읽어보기→
#225

Python의 set operation을 알아봅시다.

set가 빠릅니다 만약 해당 데이터 set이 unique하고 세트에 있는지 없는지 찾아야 하는 일이 많다면, 무조건 set로 처리하시는 것이 좋습니다. 아무튼, python3에서 지원하는 set operation을 한번 정리하는 게 좋을 것 같아...

•⏱ 약 3분 소요•
#python#python-libs#set
읽어보기→
#226

Pickle로 모든 객체를 그대로 쓰고 읽읍시다.

serialization 간단하게 말하자면, 보통 데이터 구조, 함수, 객체 등을 다른 곳으로 전송해야 할 때(네트워크 통신으로 보내거나 혹은 다른 컴퓨터에 저장하는 것이든 무엇이든), 이를 일관적으로 유지하기 위해서 데이터를 특정한 포맷으로 변...

•⏱ 약 4분 소요•
#python#python-libs#pickle
읽어보기→
#227

Jupyter notebook에서 현재 cell performance 체크하기

성능을 체크합시다. 저는 jupyter notebook에서 대부분의 코드를 작성합니다. 남들처럼 vs code를 쓰거나 atom을 쓰거나 하지 않고 jupyter notebook을 고집하는 이유는, 결과를 바로바로 확인하면서 코딩하기 편해서겠죠....

•⏱ 약 2분 소요•
#python#python-libs#timeit#jupyter-notebook
읽어보기→
#228

Pytest-benchmark 사용하기

두 함수의 성능 비교하기. 코딩을 하다가 성능을 테스트할 일들이 종종 있잖아요. 예를 들어서 이 부분이 좀 느린 것 같은데 정말 그런가? 뭐 그렇게 테스트 할 일들이 있습니다. 그냥 귀찮아서 보통은 다음으로 간단하게 처리할 때도 많죠 그런데 이건...

•⏱ 약 8분 소요•
#python#python-libs#pytest#test
읽어보기→
#229

Python에서 assert 사용하기

assert: 강하게 주장하기 는 한국말로 "강하게 주장한다" 정도로 번역될 수 있습니다. 코드에서 도 비슷합니다. 어떤 조건이 부합되지 않을 경우 강하게 문제가 발생했다는 것을 전달하는 명령어를 말합니다. 간단하게, 아래와 같이 사용하죠. 아래...

•⏱ 약 2분 소요•
#python#python-basic#exception
읽어보기→
#230

Asyncio - coroutine

concurrency vs. parallelism 우선 늘 헷갈리는 정보부터 정리하고 가겠습니다. 예전에 안다고 생각했는데 뒤돌아서면 또 잊어버려요. Concurrency(동시성)과 parallelism(병렬성)은 다른 개념입니다. 그림으로 이해...

•⏱ 약 9분 소요•
#python#python-libs#coroutine#asyncio
읽어보기→
#231

PEP498 - Literal String Interpolation

f-string in python python3.6에서 PEP498이 추가되었습니다. 간단히 말하면 스트링 포매팅에 새로운 방법이 하나 추가되었습니다. 기존의 방식은 원래 다음과 같았죠. 저는 첫번째 방식보다는 두번째 방식을 주로 썼습니다. 첫번...

•⏱ 약 7분 소요•
#python#python-basic#string#format
읽어보기→
#232

Python에서 c 코드 읽어오기

python에서 c 코드를 읽어옵시다. 여기에 있는 내용을 참고했습니다. 새로운 부분은 없다고 봐도 됩니다. 영어를 한글로 바뀌었다는 것 정도? 아주 사소하죠. 흔히들 말합니다. 일단 크게는 파이썬으로 다 만들고 그 다음에 계산이 오래 걸리는 특...

•⏱ 약 4분 소요•
#python#python-libs#ctypes#c
읽어보기→
#233

차번호판의 숫자를 사칙연산으로 0으로 만들 수 있을까요?

이상한 짓을 합니다. 저만 그러는지는 모르겠는데, 저는 숫자 4개로 구성된 차 번호판을 보면 사칙연산을 해보는 버릇이 있습니다. 제가 공대에 속해 있어서 그런지는 모르겠는데, 제 주위에도 이런 친구들이 몇몇 있습니다. 아무튼, 하다보면 대부분 되...

•⏱ 약 4분 소요•
#python#python-libs#numpy
읽어보기→
#234

Julia vs. (pure)python

토끼와 거북이 누가 더 빠를까요. python과 julia중에서. how to compute pi - spigot alogirithm pi를 계산합니다. 원주율을 말합니다. 빅파이 먹고 싶네요 아무튼, 딴생각을 하다가 pi는 어떻게 계산하는지가 ...

•⏱ 약 4분 소요•
#python#python-libs#julia#pi
읽어보기→
#235

Julia에서 python을 가져와봅시다.

요즘 julia를 써보고 있습니다. '왜 써야 되냐?'라고 물으면 음, 그냥 취미생활에 가까운 것 같아요. 아무튼 julia를 써보니, 다른 라이브러리를 쓰지 않았을때 pure python과 pure julia는 속도의 차이가 약 100배 정도 ...

•⏱ 약 3분 소요•
#python#python-libs#julia
읽어보기→
#236

Python에서 pipeline 만들기

pipeline?? R이나 julia를 써보신 적이 있으신 분들은 아시겠지만, 이 두 언어에는 pipeline이라는 개념이 있습니다. julia의 경우 대략 다음처럼 사용됩니다. - 값 |> 함수1에 적용 |> 함수2에 적용 |> 함수3에 적용 ...

•⏱ 약 4분 소요•
#python#python-libs#pipeline#reduce
읽어보기→
#237

Python에서 python 코드 바꿔서 다시 읽기

self-modifying code self-modifying code라는 개념이 프로그래밍에 있습니다. 간단히 요약하면, 프로그램 중에 프로그램 소스 코드를 바꿔서 프로그램을 변경하는 것을 말하는 것이죠. 예를 들어 기존에 가 정의되어 있었는데...

•⏱ 약 4분 소요•
#python#python-libs#import#importlib
읽어보기→
#238

Python: serialization

serialization합시다 Data Serialization은 구조화되어 있는 데이터(리스트, 딕셔너리, 객체 등)를 특정 포맷으로 밀어 넣는 것을 말합니다. 여기서 특정 포맷이란 XML, json, yml 등이 포함되구요. 특히 서로 다른 ...

•⏱ 약 22분 소요•
#python#python-libs#serialization#pickle
읽어보기→
#240

Python으로 블록체인 만들기 - 1편

introduction Go로 구현하는 블록체인을 참고하여 정리했습니다. 만약 제 포스트가 유용하다면, 이는 제가 참고한 블로그 덕분임을 미리 밝힙니다. 또한 해당 블로그는 블록체인에서의 몇 가지 개념을 다음과 같이 매우 명쾌하게 설명하고 있습니...

•⏱ 약 15분 소요•
#python#python-libs#hashlib#blockchain
읽어보기→
#241

Networkx github에 pull request 날리기

intro 최근에 networkx github에 이슈를 하나 날렸습니다. networkx의 모든 layout(spring, shell 등)은 딕셔너리(key: node label, value: (x, y))로 리턴이 되는데, 이라는 함수는 np....

•⏱ 약 10분 소요•
#python#python-libs#networkx#github
읽어보기→
#242

Python에서 수를 다루는 방식.

python에서 숫자를 정확하게 다룹시다 pyconkr2017에서 발표되었던 보다 정확한 숫자 계산이라는 발표의 내용을 정리해 봤습니다. 특히 해당 발표의 발표자분은 8퍼센트의 CTO이십니다. 숫자를 잘 다루어야 하는, 특히 소수점 단위까지 매우...

•⏱ 약 12분 소요•
#python#python-libs#number#float
읽어보기→
#243

Python으로 블록체인 만들기 - 2편

intro 지난번에 아주 간단한 블록체인을 만들었습니다. 물론 1) 블록의 생성주기도 컨트롤되지 않고 2) http등을 통해서 다른 서버들에게 블록이 나누어져 저장되고 있지도 않으면서, 과연 이것을 블록체인이라고 부를 수 있나? 싶지만 뭐 그래도...

•⏱ 약 8분 소요•
#python#python-libs#hashlib#blockchain
읽어보기→
#244

CURL을 알아봅시다.

너는 왜 또 갑자기 curl을 정리했느냐. 왜 갑자기 cURL인가요? 라고 물으실 것 같습니다. blockchain을 좀 파고 있었는데, 중간에서 블록체인을 만들고, mining하고 할 때 http프로토콜을 이용하거든요. 그런데 이때, 터미널에서...

•⏱ 약 4분 소요•
#python#command#bash#http
읽어보기→
#245

Built-in decorator in python3

decorator?? 우선 decorator가 무엇인지 모르는 분들에게 decorator가 무엇인지 알려줍니다. 장식해주는 놈 입니다. 하하하하핫. 우리가 함수를 간단하게 짜고 그냥 앞에 만 붙여주면 알아서 더 좋은 놈으로 만들어주는 종류의 아이...

•⏱ 약 17분 소요•
#python#python-basic#decorator#oop
읽어보기→
#246

Value type vs. reference type

what is id function?? 저도 잘 사용하지는 않는데, 파이썬에 라는 built-in 함수가 있습니다. 해당 펑션에 object를 넣어주면, 해당 object가 위치한 메모리 주소를 리턴해줍니다. C++에서 포인터를 출력하면, 메모리...

•⏱ 약 8분 소요•
#python#memory#python-basic#id
읽어보기→
#247

Shallow copy and deep copy in python

깊게 복사했나요 얕게 복사했나요 파이썬에서 가장 많이 쓰이는 컨테이너는 당연히 와 입니다. 리스트와 딕셔너리죠. 자주 쓰이는 만큼, 사실 아무렇게나 쓰이는 것일지 몰라요. 제 이름은 '이승훈'입니다. 또 제 아이디는 'frhyme'이죠. 이승훈도...

•⏱ 약 12분 소요•
#python#python-libs#copy#shallow-copy
읽어보기→
#248

(very basic)blockchain 다시 공부하고 완성하기.

우선 본 포스트는 전적으로 Learn Blockchains by Building One을 참고하여 진행됩니다. 이 포스트에 아주 작은 도움이라도 받았다면 그 모든 고마움은 제가 참고한 포스트에서 모든 것을 가지고 있음을 다시 말합니다. - 또한 ...

•⏱ 약 31분 소요•
#python#python-libs#blockchain#bit-coin
읽어보기→
#249

Urllib.parse

url을 parsing합시다. urllib이라는 라이브러리가 있습니다. 저는 웹에서 데이터를 긁어오는 짓을 많이 하지는 않고, 해도 를 사용할때가 더 많기는 한데, 아무튼. 기본적으로는 해당 url의 데이터를 가져오기 위해서 을 많이 사용합니다....

•⏱ 약 5분 소요•
#python#python-libs#urlparse#urllib
읽어보기→
#250

Scopus에서 서지정보 가져오기(fail)

start and fail. 원래는 selenium을 이용해서 직접 scopus에서 데이터를 일일이 가져오는 식으로 처리하려고 했습니다만, 혹시나 해서 찾아보니, 이미 scopus를 편하게 쓸 수 있는 라이브러리가 만들어져있었습니다. 일단 설치합...

•⏱ 약 5분 소요•
#python#scopus#python-libs#selenium
읽어보기→
#251

Selenium을 사용해봅시다. - 1편

automate your work 데이터를 웹에서 긁어오고 싶은데, 너무 번거롭다는 생각이 들었습니다. 저는 좀더 게을러지고 싶고, 그러기 위해서는 저보다 컴퓨터에 일을 많이 시키는 것이 더 필요하다고 생각됩니다. pycon2017에서 [[Dan...

•⏱ 약 8분 소요•
#python#python-libs#selenium#web
읽어보기→
#252

Beautifulsoup4 기본.

intro 웹에서 데이터를 가져오고 있습니다. 찾아보니 html문서를 파싱하는데는 가 매우 유용한다는 이야기가 있어서, 이 이아이를 간단하게라도 사용해보려고 합니다. beautifulsoup4 Beautiful Soup is a Python li...

•⏱ 약 7분 소요•
#python#python-libs#html#xml
읽어보기→
#253

여러 network를 weight를 고려해서 합칩시다.

compose network with weight 모든 네트워크를 합쳐서 관리하는 것이 아니라, 분리해서 관리하다가, 필요할때만, 네트워크를 합쳐서 관리하는 것이 더 효율적일 때가 있습니다. 예를 들어서, 연도별로 네트워크를 따로 보는 것이 필요...

•⏱ 약 7분 소요•
#python#python-libs#compose#network
읽어보기→
#254

Spacy를 이용해서 자연어처리하자.

intro 저는 지금 텍스트 분석을 하고 있습니다. 이 과정에서 주어진 문장들에서 (subject, verb, object)의 형식으로 요소를 추출해내는 방법을 찾고 있습니다. 물론 를 써도 되는데, 사실 얘는 약간, 너무 덩치가 크고, 무거워요...

•⏱ 약 26분 소요•
#python#python-libs#spacy#nlp
읽어보기→
#255

Python에서 genetic algorithm 사용하기

intro Genetic algorithm에 대해서 예전에 수업때 사용해본적도 있고 했지만, 다시 한번 공부해보기로 했습니다. 또 예전에 C++로 코딩할 때와 다르게 python으로 코딩하면서 부터는, 알고리즘을 구현하는 것이 상대적으로 쉬워서,...

•⏱ 약 4분 소요•
#python#python-libs#genetic-algorithm#optimization
읽어보기→
#256

한국의 큰 수 체계를 알아봅시다.

intro 왠지, 또 이상한 걸 하게 된것 같은데요. 파이썬으로 코딩할때, 수를 출력할 때면, 다음처럼 출력됩니다. 이게 너무 길기도 하고, 끊어읽을 수가 없어서 어느 정도로 큰지 가늠하기가 좀 어려웠습니다. 그래서, 수를 입력받고 해당 값을 한...

•⏱ 약 2분 소요•
#python#number#big-number#zip
읽어보기→
#257

Numpy - along axis vs. over axes

intro 사실, 저는 를 사용해서 코딩하는 것보다는, list를 사용하는 것이 훨씬 익숙합니다. , , 를 이용하면 제가 원하는 형태의 코딩을 꽤 빠르게 할 수 있거든요. 그래서 를 활용해서 좀 더 복잡한 계산들을 빠르게 끝낼 수 있어요. 아마...

•⏱ 약 5분 소요•
#python#numpy#apply#python-libs
읽어보기→
#258

Monte carlo tree search를 알아봅시다.

intro 최근에 최적의 tree구조를 찾아내는 연구를 수행하고 있습니다. 그 과정에서 처음에는 genetic algorithm을 활용하여 최적화로 풀어보려고 했는데, 이 방법 외에도 강화학습을 쓸 수 있지 않을까? 라고 막연하게 생각이 되었어요...

•⏱ 약 14분 소요•
#python#python-libs#simulation#monte-carlo-tree-search
읽어보기→
#259

Python에서 tree 구조 사용하기

intro monte-carlo tree search를 공부해보던 중에 tree구조를 사용해볼 필요성이 생겼습니다. 물론 를 이용해서도 비슷하게 만들 수 있지만, 이때는 find parent, find children 등에서 약간 불편함이 발생하...

•⏱ 약 7분 소요•
#python#python-libs#tree#data-structure
읽어보기→
#260

Json 예쁘게 출력하기.

intro 요즘 json, xml 등을 사용하는데, 그냥 python의 기본 print로는 예쁘게 출력되지 않는 것 같아요. 그래서 몇 가지를 사용해서 좀 예쁘게, 정확히는 사람이 인지하기 쉽게 출력해보는 것을 목적으로 합니다. pprint pp...

•⏱ 약 5분 소요•
#python#print#pprint#python-libs
읽어보기→
#261

List of list에서 unique한 것만 뽑기.

intro 저는 파이썬으로 코딩할 때, class를 잘 만들지 않습니다. 여러 가지 이유가 있을 수 있겠지만, 기존에 잘 구성된(남이 만든) class를 가능하면 쓰려고 하고, 또 제가 쓰는 라이브러리들은 대부분 데이터 분석에 가까운 것들이라서,...

•⏱ 약 4분 소요•
#python#list#set#python-basic
읽어보기→
#262

Uuidv1 vs. uuidv4

intro recursive하게 그래프를 만드는 코딩을 하고 있습니다. 처음에는 a -> b -> c -> 로 시작하는데, 각 노드가 확장이 가능할 경우, 해당 노드는 확장됩니다. 이 과정에서, 각 node에 이름을 붙여야 하는데, recursi...

•⏱ 약 3분 소요•
#uuid#python
읽어보기→
#263

Jupyter notebook을 ipynb로 익스포트하기

intro 다들 IDE를 뭘 쓰시는지 모르겠습니다만, 저는 jupyter notebook을 사용하고 있습니다. 다양한 장점이 있지만 테스트를 하면서, 코딩을 하는데 최적화되어 있다고 생각해요. 또한 마크다운과 코드를 함께 쓸 수 있기 때문에 협업...

•⏱ 약 3분 소요•
#python#python-libs#jupyter-notebook#pdf
읽어보기→
#264

Np.random.choice???

intro 를 이용해서, 일정 확률을 이용해서 random하게 sampling할 때가 있습니다. 코드로 표현하면 다음처럼 되겠죠. 어, 근데 결과가 이상합니다. c가 터무니 없이 많이 나오네요. 공식 문서를 보면 다음과 같이 되어 있습니다. 세번...

•⏱ 약 2분 소요•
#python#numpy#random#choice
읽어보기→
#265

Dictionary를 pd.DataFrame으로 바꿀 때

예제를 봅시다. 매우 간단한 문제기 때문에 설명없이 바로 들어갑니다. 다음처럼 간단한 딕셔너리가 있고, 이를 의 contstructor를 이용해서 바로 변환해준다고 합시다. - 우리의 마음같아서는 가 index가 되고 , , 가 칼럼이 되기를 희...

•⏱ 약 4분 소요•
#python-libs#python#pandas#dictionary
읽어보기→
#266

영국식 영어단어를 미국식 영어단어로 변환하기.

intro 간단하게 자연어 처리를 좀 하고 있습니다. 영어를 처리하고 있는데, 이 과정에서 영국식 영어와 미국식 영어가 섞여 있는 것을 발견했어요. 그러니까, 이런 식이죠. organisation, organization 의미는 같지만, 형태는 ...

•⏱ 약 2분 소요•
#python#python-libs#english#nlp
읽어보기→
#267

Simpy의 FilterStore get, set 잘 이해하기

intro 다들 simulation을 무엇을 이용해서 하시는지 모르겠네요. 물론 잘하는 사람은 excel만 가지고도 잘 할 수 있습니다. 물론 그럴 필요가 있나? 싶기는 합니다만. 저는 를 이용해서 시뮬레이션을 돌립니다. 물론 제가 하는 시뮬레이...

•⏱ 약 5분 소요•
#python#simpy#filterstore#python-libs
읽어보기→
#268

Simpy에서 (all of) or (any of) event 제어하기

intro business process, 특히 BPMN을 시뮬레이션할 때, and join, any of it 을 사용해야 하는 일들이 있습니다. 주어진 조건 중에서 무엇이든 만족하면 끝내거나(any of), 주어진 조건을 모두 만족하면 끝내거...

•⏱ 약 9분 소요•
#python#python-libs#simpy#simulation
읽어보기→
#269

Git으로 Jupyter notebook 파일 관리하기

intro 저는 코딩을 jupyter notebook으로만 합니다(이 얘기는 매번 하는 것 같기는 합니다만). 코드 작성 중에 코드를 테스트 해보기도 편하고, 지금 잘 되고 있는지를 파악하면서 코딩하기가 편합니다. - 단, 그래서 여러 cell로...

•⏱ 약 2분 소요•
#python#python-libs#git#jupyter-notebook
읽어보기→
#270

Google collaboratory에서 google drive의 파일 읽기

intro local에서 jupyter notebook을 쓰다가, 이제는 google collaboratory로 완전히 넘어가기로 결정했습니다. 다양한 이유가 있지만, - 우선 구글 드라이브 내에 쥬피터 노트북+관련 문서 들을 함께 관리할 수 있...

•⏱ 약 4분 소요•
#python#python-libs#google#collaboratory
읽어보기→
#271

Google colaboratory 사용하기

intro 저는 매우 오랫동안 jupyter notebook을 사용해 왔습니다(정확히는 지금은 jupyter-lab을 사용하고 있기는 한데). 아무래도 코딩을 주기적으로 체크하면서 코딩을 하다보니까, 또 그래야 하는 일이기도 하고, 보통 jupy...

•⏱ 약 4분 소요•
#python#google#colaboratory#jupyter-notebook
읽어보기→
#272

Networkx Graph에서 reachability 확인하기

intro 저는 networkx를 활용해서 네트워크를 그리고, 분석하고, 또 만들고 아무튼 잡일을 아주 많이 합니다. 그런데 네트워크를 그린 다음, 해당 네트워크에서 특정 node A와 특정 node B가 연결되어 있는지 확인하는 방법을 정리했습...

•⏱ 약 2분 소요•
#python#python-libs#networkx#graph
읽어보기→
#273

Spacy - Named Entity Recognition 사용하기

intro spacy 에서는 간단한 Named Entity Recognition을 제공해줍니다. Named Entity Recognition 예를 들어서 다음과 같은 문장이 있다고 할때 Jim bought 300 shares of Acme Cor...

•⏱ 약 2분 소요•
#spacy#python#python-libs#ner
읽어보기→
#274

Google colab에서 graphviz 사용하기.

intro 이제는 와 를 너무 많이 사용해서, 이 둘을 사용해서 그림을 그릴 때가 편할때가 있습니다만, 가끔 의 layout을 이용해서 그림을 그려주고 싶을 때가 있습니다. 대략 아래 그림처럼 뭔가 binary tree같은 애들을 그려주기가 편하...

•⏱ 약 3분 소요•
#python-libs#python#graphviz#google
읽어보기→
#275

Latine alphabet 지우기.

intro 저는 키워드를 분석하는 작업을 많이 하는데, 키워드, 즉 문자열에 '라틴 알파벳'이 등장하는 경우들이 있습니다. 아래 그림에서처럼 액센트도 있고, 합니다. 이걸 다 삭제하고 싶어서 찾아보니, 이미 스택오버플로우에 비슷한 질문이 있습니다...

•⏱ 약 3분 소요•
#python#python-libs#string#unicodedata
읽어보기→
#276

Numba를 사용하여 파이썬의 속도를 올려보자.

요즘, 계산을 좀 돌리고 있는데, 속도가 너무 느린거에요. 원래 퓨어 파이썬은 속도 자체가 느리기는 한데, 그래도 나름 속도를 빠르게 만들어보려고 노력을 했는데도, 너무 느립니다. 물론 처음부터 그냥 c로 코딩을 하면, 훨씬 빠르기는 하겠지만, ...

•⏱ 약 4분 소요•
#python#numba#python-libs
읽어보기→
#277

Line profiler를 사용하여 파이썬의 각 라인이 어떻게 돌아가는지를 알아보자.

intro 요즘 저는 시뮬레이션을 돌리는 작업을 좀 하고 있는데, 속도가 너무 느려서 걱정입니다. 여러 번 돌려야 하는데, 속도가 너무 느리다보니, 좀 빠르게 진행하지 못하고 있어요. 아무튼 그 과정중에, 현재 코드가 연산이 빠른지 어떤지를 파악...

•⏱ 약 5분 소요•
#python#line_profiler#python-libs
읽어보기→
#278

Dictionary 한줄로 합치기.

dictionary 합치기 사실 언뜻 보면 별거 아닌데? 뭐 이런걸 포스트로 쓰나 라고 생각하실지 모릅니다. 네, 저도 처음에는 그렇다고 생각했어요. 보통 파이썬에서 리스트를 사용할 때, 두 리스트를 합치고 싶을 때가 있습니다. 원래 리스트는 건...

•⏱ 약 3분 소요•
#python#python-basic#python-libs#dictionary
읽어보기→
#279

Plt에서 y 축 reverse하기

y 축을 왜 반대로 해야 하나 어떤 값에 의한 순위 변화를 그려야 한다고 하면, y축의 값이 작을수록 위로 위치하도록 만들어야 합니다. 이러려면 y축을 반대로 변경해야 하죠. 늘 그렇지만, 이미 스택오버플로우에 비슷한 내용이 있습니다.

•⏱ 약 1분 소요•
#python#python-libs#plt#reverse
읽어보기→
#280

Multiprocessing을 사용하여 계산을 조금 더 빠르게 하자.

계산!!!계산!!!속도!!!빨리!!! 요즘 저는 파이썬을 이용해서, 복잡한 계산들을 하고 있습니다. 예를 들면, - Word2vec을 이용하여, 단어를 벡터로 표현한 다음 단어들간의 semantic similarity를 계산하기 - 단어가 몇 개...

•⏱ 약 17분 소요•
#python#python-libs#multiprocessing#computation
읽어보기→
#281

Colab에서 nanum font 사용하기

intro 저는 요즘 모든 코딩을 colab에서 하고 있습니다. 강점이쟈 약점은, 세팅해놓은 환경을 다시 시작하면 초기화된다는 것이죠. 저는 이걸 강점이라고 생각해요. 라이브러리를 설치하거나, 뭔가를 하다보면 의존성 문제등으로 인해서 충돌하는 경...

•⏱ 약 13분 소요•
#python#python-libs#font#colab
읽어보기→
#282

Networkx의 graph를 읽고 씁시다.

intro 를 어렵게 구축했다면, 해당 그래프를 일정한 파일 포맷으로 저장해두어야 다음에 쓰기가 편할 수 있습니다. 따라서, 여기서는 graph를 어떻게 저장하고, 다시 저장한 그래프를 불러오는지를 정리합니다. Graph formats graph...

•⏱ 약 4분 소요•
#python#python-libs#networkx#format
읽어보기→
#283

JSONDecodeError를 처리합시다.

intro 요즘에는 csv보다 json을 이용해서 데이터를 전달받을 때가 더 많은 것 같습니다. 다양한 이유가 있겠지만, 웹에서 데이터를 크롤링해서 가져올 때가 많기 때문이겠죠. using json 그냥 json을 이용해서 다음처럼 돌려버리면 될...

•⏱ 약 4분 소요•
#python#python-libs#json#jsondecodeerror
읽어보기→
#284

파이썬은 왜 느린가?

intro "파이썬은 느리다"라고 많은 사람들이 알고 있습니다. 그런데, 이 지점에서 "파이썬이 왜 느린가요?"라고 물어보면 대부분 답변을 못합니다. 답변을 한다면, "파이썬은 인터프리터언어 혹은 스크립트 언어라서 그렇다"라고 하고, 혹은 "동적...

•⏱ 약 5분 소요•
#python#python-basic#computation
읽어보기→
#285

Colab에서 python auto-complete가 안됩니다.

intro 약 1주일전만 하더라도, colab에서 auto-complete가 잘 되었습니다. auto-complete는 예를 들어서, 까지만 치고, tab을 누르면 내에 있는 로 시작하는 함수들이 포함된 drill-down menu가 생기는 것을...

•⏱ 약 4분 소요•
#python#python-libs#colab#auto-complete
읽어보기→
#286

Divmod in python

what is divmod? 와 라는 값이 있고, 몫과 나머지를 구한다고 해봅시다. 아마도 대부분의 사람들은 다음과 같이 코드를 짤 것 같습니다. 매우 일반적이고, 당연한 것이기는 한데, python에서는 라는 함수를 built-in functi...

•⏱ 약 2분 소요•
#python#python-basic#divmod
읽어보기→
#287

Flask에서 html페이지로부터 파일 업로드하기

file submit via webpage 요즘 저는 간단한 analytics tool을 만들고 있습니다. 특정한 분석을 수행하기 위해서 필요한 데이터를 정의하고, 그 데이터를 사용자가 입력했을 때 데이터를 분석해서 결과를 뿌려주는 형식의 간단한...

•⏱ 약 7분 소요•
#python#flask#python-libs#file
읽어보기→
#288

Flask로 만든 페이지 bootstrap로 좀 더 예쁘게 만들기.

flask로 만든 웹 페이지 더 예쁘게 만들기. flask로 만든 페이지 더 예쁘게 만들려고 합니다. 사실 이 부분은 front-end에 대한 부분입니다만, 결과를 더 예쁘게 보여줄 수 있다는 점에서, 또 이 부분이 많은 어른들에게 괜찮게 보인다...

•⏱ 약 3분 소요•
#python#flask#boostrap#python-libs
읽어보기→
#289

Flask에서 파일 다운받는 버튼 만들기

csv download 요즘 웹페이지를 만드는 프로젝트를 하고 있습니다. 간단하게 분석을 수행하고, 분석 결과를 보여주는 부분을 진행하고 있는데, 이 과정에서 분석 결과를 csv의 형식으로 다운받도록 처리하고 싶다는 생각을 했습니다. 왜, 보통 ...

•⏱ 약 4분 소요•
#flask#file-download#python#python-libs
읽어보기→
#290

Flask에서 csv 파일 업로드할때, 파일 생성하지 않고 값만 읽기.

file을 읽읍시다. 이전에는 html 페이지로부터 파일을 전달받은 다음, 파일을 저장하고 읽었습니다. 아래 코드처럼요. 그런데, 생각해보니까 굳이 그렇게 할 필요가 없는 것 같아요. 그냥 그 값을 바로 읽어들이면 되는 것 아닌가? 싶었습니다. ...

•⏱ 약 2분 소요•
#python#python-libs#flask#csv
읽어보기→
#291

Flask에서 html에 이미지 첨부하기.

flask에서 img를 첨부한 html 파일을 만듭시다. flask에서 html을 렌더링할때, static 폴더에 img를 생성하여 저장하고, 해당 이미지를 html내에 첨부하여 보여주려고 합니다. 간단하게, flask에서는 다음과 같은 함수를 ...

•⏱ 약 1분 소요•
#python#python-libs#image
읽어보기→
#292

Mpld3를 이용해서 python의 그림을 웹에 올려보자.

matplotlib.pyplot로 그린 그림을 편하게 html로 바꾸자. 파이썬으로 코딩하는 사람들은 시각화할때 대부분 를 사용할 것이라고 생각합니다. 특히 는 jupyter notebook과 붙으면 매우 굉-장해집니다. 그림을 바로 그리고 고치...

•⏱ 약 14분 소요•
#python#mpld3#visualization#d3js
읽어보기→
#293

Jinja2 에 대해서 알아보쟈!

jinja2는 flask에서 무슨 일을 하는가? flask로 웹서버를 구축하고 있습니다. flask를 통해서 웹서버를 구축하는 방식은 매우 간단합니다. 일단 다음과 같은 python 코드를 만듭니다. - 라는 url로 들어오면, 라는 templa...

•⏱ 약 7분 소요•
#jinja#jinja2#python#flask
읽어보기→
#294

Flask template에서 연속 상속하기.

왜 연속상속을 해야 하는가. flask를 이용해서 웹서버를 구축하시는 분이 얼마나 계신지는 잘 모르겠습니다만, 저는 flask를 이용해서, html페이지를 동적으로 rendering하는 작업을 수행하고 있습니다. 아무튼, 에 기본 골격이 되는 h...

•⏱ 약 4분 소요•
#python#python-libs#flask#template
읽어보기→
#295

Bokeh로 그림을 그려 봅시다.

matplotlib이 있는데 왜 bokeh를 써야 하나요? 뭐, 맞는 말씀입니다. 필요하면, matplotlib로 그림을 그리고, 웹으로 내보내야 한다면, 파일로 내보내고 그걸 가져오는 식으로 진행하면 되는데, 굳이 익숙한 matplotlib을 ...

•⏱ 약 21분 소요•
#python#python-libs#bokeh#data-visualization
읽어보기→
#296

Bokeh로 네트워크 그리기.

bokeh로 network 그리기. 저는 네트워크 분석을 주로 수행합니다. 따라서 네트워크를 시각화할 필요성이 많은데, 를 이용해서 그림을 그릴 때는 비교적 쉽게 그림을 그릴 수 있습니다. 이를 활용해서 png, svg의 형태로 그림을 뽑아내는 ...

•⏱ 약 5분 소요•
#python#bokeh#python-libs#networkx
읽어보기→
#297

Node2vec 라이브러리를 사용해봅시다.

recap: node2vec node2vec은 word2vec처럼 skip-gram을 사용해서 node를 vector로 표현하는 방법론입니다. 그 과정에서 word2vec의 sequence와 같은 것을 네트워크의 sampling strategy를...

•⏱ 약 7분 소요•
#machine-learning#node2vec#python
읽어보기→
#298

Running bokeh server

why do you wanna run bokeh server? 현재 구현중인 시스템에서 데이터를 시각화해서 보여줘야 합니다. 비교적 간단한 시뮬레이션 툴을 만드는 것인데, 이 과정에서 간단히 plot만 보내주는 것이 아니라, 애니메이션을 그려주면...

•⏱ 약 3분 소요•
#python#bokeh#data-visualization#python-libs
읽어보기→
#299

Matplotlib로 만든 그림 animation으로 만들기

python으로 animation을 만들려구요. 저는 보통 그림을 matplotlib를 사용해서 그립니다. 많이 만들어서, 그리고 만들 수 있는 것들이 많아서 유용합니다. 다만, 시뮬레이션이 수행되는 부분을 animation으로 처리할 수 없을까...

•⏱ 약 6분 소요•
#python#python-libs#matplotlib#animation
읽어보기→
#300

Flask에서 데이터를 html, javascript로 보내자.

flask에서 데이터를 javascript로 보내자. 저의 주력언어는 파이썬입니다. 파이썬으로 대부분의 데이터 처리를 하게 되는데, 데이터를 시각화하는 측면에서는 javascript, 특히 d3.js가 매우 편한 것 같아요. 그 측면에서, 제가 ...

•⏱ 약 4분 소요•
#d3js#javascript#csv#python
읽어보기→
#301

Flask에서 만든 데이터로 d3js 애니메이션 만들기.

애니메이션을 만듭시다. python 에서 애니메이션, 즉 각 프레임별로 필요한 데이터를 전송하고, 각 프레임을 만드는 작업을 해보려고 합니다. html 페이지를 만들어줍니다. - 처음에는 어떻게 하나 싶었는데 그냥 를 하나씩 올려주면서 진해하면 ...

•⏱ 약 5분 소요•
#python#flask#d3js#animation
읽어보기→
#302

Graphviz를 이용해서 그림을 그리고, flask로 웹으로 보냅시다.

graphviz로 그림 그리기. 저는 보통 그냥 로 그림을 그리지만, 경우에 따라서는 로 그림을 그릴때도 있습니다. 여기서는, 로 그림을 그리고, 이를 버퍼에 저장해서 바로 웹으로 보내주는 것을 정리하였습니다. code 다음처럼 간단하게 파이썬 ...

•⏱ 약 2분 소요•
#graphviz#python#flask#python-libs
읽어보기→
#303

Jinja에서 variable 선언하기.

jinja에서 직접 변수를 선언해봅시다. 보통 jinja에서는 와 만을 사용합니다 변수는 에서 함께 넘어온 것들 뿐이죠. 그러나, 경우에 따라서는 직접 내부에서 값을 선언해주는 것이 필요할 때가 있습니다. 어떻게 할 수 있을까요? do it 언제...

•⏱ 약 3분 소요•
#python#flask#jinja#python-libs
읽어보기→
#304

Jinja template에서 python function 더 사용하기

jinja template에서 python의 다른 펑션을 사용해봅시다 음, 사실 간단한 겁니다. 예를 들어서, , 등을 jinja template에서 사용해보고 싶다는 말입니다. 기본적으로는 다음과 같은 것만 가능합니다. 그런데, 필요에 따라서,...

•⏱ 약 2분 소요•
#python#jinja#python-libs#flask
읽어보기→
#305

Transalte vs. replace

why use translate? 우선, 저는 python의 string method 중에 translate라는 것을 써본 적이 없습니다. 이름에서 알 수 있는 것처럼 해당 메소드는 스트링을 다른 스트링으로 변환시켜주는 기능을 수행합니다. 그러나...

•⏱ 약 2분 소요•
#python#string#python-libs#python-basic
읽어보기→
#306

List의 k partition 구하기.

리스트로부터 k개의 partition을 구합니다 예를 들어서, 다음과 같은 리스트가 있다고 합시다. 이 리스트를 2로 쪼갠다면, 다음과 같은 3 가지 방법이 있죠. - 이렇게 k개수만큼 분할할 수 있는 모든 리스트를 리턴하는 함수를 만들어 봤습니...

•⏱ 약 5분 소요•
#python#python-libs#partition
읽어보기→
#307

Heap 을 사용해봅시다.

요즘 심심할때 간단한 코딩 문제를 푸는데, 간단한 자료구조가 나옵니다. 이른바 heap이라는 것이죠. complete binary graph(대충, children이 두개 씩만 있어야 하고, 음, 대충 꽉 채워진 그래프입니다 설명하기 귀찮네효 하...

•⏱ 약 8분 소요•
#python#python-libs#data-struture#heap
읽어보기→
#308

Networkx의 Graph의 isomorphic를 체크해봅시다.

graph의 isomorphic을 체크해봅시다. 아래와 같이, 두 개의 그래프가 있다고 합시다. 이 둘은 노드도, edge도 모두 동일합니다. 이 두 그래프가 같은지를 확인하려면 어떻게 하면 될까요? 우리가 흔히 쓰는 것처럼 을 써서 처리하면 될...

•⏱ 약 4분 소요•
#python#python-libs#networkx#isomorphism
읽어보기→
#309

네트워크의 isomorphism, equivalence의 차이

network equivalence, isomorphism. 얼마전에, network의 isomorphic을 체크한다는 글을 썼었습니다만. 과 는 다릅니다. 이걸 모르고 글을 쓴 것 같네요. network isomorphism graph isom...

•⏱ 약 3분 소요•
#python#python-libs#network#networkx
읽어보기→
#310

Graph에서 랜덤 워크 생성하기.

random walk generation random walk라 함은, 말 그대로 무작위로 이리저리 움직이는 것을 말합니다. 이걸 그래프에서 이야기하자면, 주어진 그래프에서 정의한 노드와 엣지의 특성에 맞춰서 이런저런 시퀀스를 만드는 것을 일종의...

•⏱ 약 8분 소요•
#python#python-libs#graph#networkx
읽어보기→
#311

Genmsim의 word2vec normalize하기

word2vec.wv.similarity word2vec은 각 단어를 벡터화하여 표현한 것을 말합니다. 뭐 쉬운것이니까 넘어가고, 여기서 종종 발생하는 문제점은 normalization이죠. 단어간의 유사성을 고려해서, 가장 유사한 놈을 찾거나 ...

•⏱ 약 2분 소요•
#python-libs#python#gensim#word2vec
읽어보기→
#312

Gensim을 이용하여 doc2vec 이용하기.

intro. 저는 최근에, 텍스트를 효과적으로 처리하고, 특히, 유의미한 정보를 추출하는 작업을 수행하고 있습니다. 특히, 적합한 데이터를 찾는 측면에서 이 작업을 수행하고 있습니다. 그 과정에서, 몇 가지 유용한 자연어 처리 기법을 찾고있고, ...

•⏱ 약 20분 소요•
#python#python-libs#nlp#gensim
읽어보기→
#313

Tqdm이라는 라이브러리를 사용해보자.

tqdm? tqdm은, 뭐 사실 꼭 필요한 건 아닌데, 현재 for 문이 얼마나 실행되었는지를 알려주는 라이브러리입니다. 사실, 자세하게 설명할 필요는 없으니, 그냥 바로 소개할게요 DO IT 아래처럼 loop가 돌아갈때, 지금 얼마나 돌아가고 ...

•⏱ 약 2분 소요•
#python#tqdm#python-libs#python-basic
읽어보기→
#314

Got multiple values for argument

사소한 오류이기는 한데, 정리합니다. 아래 코드에서 보는 것과 같이, func에 변수를 함께 넘길 경우에는 - 해당 함수가 선언되었을 때의 변수 순서에 맞춰서 넘기거나 - 아니면 위치와 상관없이, 변수 명을 분명하게 작성해서 넘겨야 합니다. 세번...

•⏱ 약 1분 소요•
#python#python-libs
읽어보기→
#315

Python에서 가장 최근 파일 읽어오기.

python에서 가장 최근 파일을 불러옵시다 매우 간단하기 때문에, 그냥 바로 코드부터 작성하겠습니다. 특정 폴더에 있는 파일들중에서 가장 최근에 만들어진 파일만 가져오도록 합니다. wrap-up 매우 간단합니다 하하하.

•⏱ 약 1분 소요•
#python#python-libs#python-basic
읽어보기→
#316

Npy, npz 데이터를 잘 저장핮.

data를 잘 저장합시다. 깔짝깔짝 파이썬 가지고 놀때는 몰랐지만, 점점 복잡한 알고리즘을 사용하게 되면서, 한번 계산할때의 계산량이 일정 이상을 넘어가는 일이 발생합니다. 따라서, 매번 새롭게 계산하는 것이 아니라, 계산된 결과를 임시 파일로 ...

•⏱ 약 4분 소요•
#python#python-libs#numpy#pickle
읽어보기→
#317

Generator의 send 이용하기.

generator의 send 이해하기 아마도 이 글을 보시는 분들은 대충 generator가 무엇인지는 아실테고, 당연히 도 명확하게 이해하고 있을 것 같습니다. 오늘은 라는 저도 처음 보는 메소드를 설명할 것인데요. 대충 아래와 같은 코드입니다...

•⏱ 약 4분 소요•
#python#python-basic#generator#send
읽어보기→
#318

Python class에서 next, iter

iter, next 간단하게 iter, next 메소드를 클래스에서 정의하는 방법과 그 필요성을 알아봅니다. iterator는 쉽게, 순차적으로 연결되어 있는 값을 의미합니다. 흔히들 리스트처럼 만들어줄때 많이 쓰게 되는데, 저는 기껏 클래스로 ...

•⏱ 약 2분 소요•
#python#class#iterator
읽어보기→
#319

Python에서 getattr 덮어씌우기.

what is getattr? 우선 getattr에 대해서 먼저 알아봅시다. 은 그냥 각 오브젝트에서 해당 오브젝트의 attribute를 가져오는 펑션입니다. 기본적으로 파이썬에서 지원되는 built-in function이구요. 간단하게 다음으로...

•⏱ 약 4분 소요•
#python#python-basic#getattr#class
읽어보기→
#320

자료구조 - trie

문자열을 검색할 때 알고리즘 문제들을 풀다보면, 문자열 검색을 해야 하는 일들이 종종 생깁니다. 예를 들어서, N개의 문자열 리스트가 있을 때, 내가 원하는 특정 문자가 해당 N개의 문자열에 있는지 파악하는 것 같은 일들이 비일비재하죠. 뇌없이 ...

•⏱ 약 4분 소요•
#python#python-basic#trie#data-structure
읽어보기→
#321

Spacy 정확하지 않은 similarity

단어간 유사성이 이상하게 되어요! 저는 파이썬 자연어처리 라이브러리인 spacy를 사용해서, 단어간 유사성을 비교할때가 있습니다. 그런데 말이죵, 이상하게 유사성이 제대로 안 나올 때가 많습니다. 예를 들어서 아래 코드를 실행하면, 다음처럼, 정...

•⏱ 약 4분 소요•
#python#python-libs#spacy#nlp
읽어보기→
#322

Spacy 에 새로운 단어와 벡터를 넣어줍시다.

기존 학습된 벡터들에 새로운 벡터들을 넣어주고 싶어요. 이미 spacy에는 꽤 잘 작동하는 워드투벡이 있습니다. 간단한 처리를 할때는 그냥 이걸 사용해주는 것이 훨씬 좋죠. 그런데, 없는 경우들이 있씁니다. 저는 특수한 분야의 텍스트를 다루는데,...

•⏱ 약 5분 소요•
#python#python-libs#spacy#nlp
읽어보기→
#323

Multi-label classification

text가 어떤 분류에 속하는지를 분류합시다. 저는 요즘 간단히, 자연어 데이터가 어떤 분류에 속하는지를 예측하는 알고리즘을 구현하고 있습니다. 비슷한 예를 든다면, 인스타그램과 같은 서비스에 올라오는 글이 있고 각 글에 달리는 tag가 있다고 ...

•⏱ 약 8분 소요•
#python#python-libs#multi-label-casslfication#classification
읽어보기→
#324

Query in Networkx

최근에는 GQL이라는 Graph Query Language를 정리했습니다. 결국 데이터를 Graph로서 표현하고, 이를 필요에 따라서, 필터링해서 볼 수 있는 쿼리언어 표준을 만들자! 라는 것이 해당 언어의 목적이죠. 저는, 그렇게까지 대용량의 ...

•⏱ 약 8분 소요•
#python-libs#python#networkx#query
읽어보기→
#325

Json에 줄바꿈 등의 문자가 있는 경우

json 형식의 파일에서는 스트링 내에 줄바꿈이나 탭이 있으면 안됩니다 되게 간단한 것이기는 한데, 예를 들어서, json 파일이 다음처럼 되어 있다고 해봅시다. 문자열 내에 탭이나, 줄바꿈이 있는게 이상한건 아닌데, 여기서 아래와 같은 오류가 ...

•⏱ 약 2분 소요•
#python-libs#python#json#string
읽어보기→
#326

Python의 raw string

Raw String은 특수 문자를 무시한다 종종 웹에서 데이터를 긁어와야 할 때가 있습니다. 전문적으로 할 때는 다른 기법들도 있지만, 보통 쭉 긁어서 복사하는 걸 제일 많이 하죠. 그런데, 이게 긁히지 않을 때는 페이지 소스 보기를 눌러서, 페...

•⏱ 약 2분 소요•
#python#raw-string#string#json
읽어보기→
#327

Pandas profiling

탐색적 데이터 분석(Exploratory Data Analysis)이라는 것이 있습니다. 어려워 보이지만, 간단하게 설명하자면, 주어진 데이터의 특성이 무엇인지를 파악하는 것을 말합니다. 우선, 저한테 데이터 세트가 있다고 가정을 해보겠습니다....

•⏱ 약 17분 소요•
#python#python-libs#pandas#conda
읽어보기→
#328

Pandas profiling

자, 원래는 지난 편에서 좀 더 자세하게, 의 사용법을 알아보려고 했습니다만, 라이브러리의 충돌등으로 인해서 잘 되지 않더군요. 그래서 이 편에서 좀 더 정리해봤습니다. 해당 내용들은, pandas-profiling documentation에서 ...

•⏱ 약 3087분 소요•
#python#python-libs#pandas#conda
읽어보기→
#329

AttributeError - 'NoneType' object has no attribute

Nonetype은 그게 없어. 이건 아주 기본적인 에러이기는 한데, 은근히 자주 발생합니다. 보통은 정규표현식을 사용할 때 많이 발생하기는 하죠. 그래서 마치 이게 정규표현식에 관계된 에러라고 생각하기 쉬운데, 이건 그냥 '반환된 값이 없는데 당...

•⏱ 약 2분 소요•
#python-basic#python
읽어보기→
#330

Python에서 neo4j 데이터베이스 접근하기.

intro 본문에서는 python에서 GraphDB인 neo4j와 어떻게 연결하고, 쿼리를 전송하고 그 응답을 받는 기본적인 방식을 정리하였습니다. python을 GraphDB인 neo4j와 연결하여 처리하는 방법을 정리합니다. 참고로 저는 ne...

•⏱ 약 10분 소요•
#python-basic#python#python-libs#database
읽어보기→
#331

Jupyter notebook에서 유용한 몇가지 magic command

jupyter notebook의 magic command를 정리합니다. 사용할 수 있는 모든 매직 커맨드를 출력해줍니다. 일단 이것만 알아도 필요할때 보면서 해도 되죠. 기본 개념 몇 가지 의 경우는 line command 의 경우는 cell c...

•⏱ 약 1분 소요•
#magic-commmand#jupyter-notebook#python#python-libs
읽어보기→
#332

강화학습을 공부해봅시다. 4편

카트폴 쥬피터노트북에서 돌리려면 다음 두 가지를 설치해야 합니다. Jsanimation msgpack http://nbviewer.jupyter.org/github/jakevdp/JSAnimation/blob/master/animationexam...

•⏱ 약 1분 소요•
#reinforcement-learning#python#python-libs#gym
읽어보기→
#334

Python으로 이해하는 Bayesian

bayesian??? 네 저는 베이지안을 늘 헷갈립니다. 제 기억이 맞다면, 대학원 면접에서도 베이지안을 물어봤던 기억이 있는데, 그때도 헷갈렷던 것 같아요. 저는 공대생이 맞나요...유사공대생입니다...흑흑 아무튼 세상을 빈도주의적 관점으로 본...

•⏱ 약 4분 소요•
#python#statistics#machine-learning
읽어보기→
#335

Gradient boosting이 무엇인가?

regression을 할때, 그동안은 가 제일 결과가 좋아서, 이것만 이용했었는데, kaggle에서 다른 사람의 notebook을 확인해보니, gradient boosting을 사용한 것을 볼 수 있었습니다. 그래서 이 아이는 무엇인가, 왜 좋은...

•⏱ 약 1분 소요•
#python#python-libs#machin-learning#regression
읽어보기→
#336

Movie review의 점수를 올려 봅시다. 2편

이전에 뭐 gensim도 써보고 이것저것 해봤는데, 잘 안되더라고요. 그리고 post도 너무 길어져서 새로 해보려고 합니다 하하핫. 이전에 countvectorizer에서 최종 결과가 잘 나왔기 때문에, 일단은 countvectorizer를 다시...

•⏱ 약 1분 소요•
#kaggle#python#python-libs
읽어보기→
#337

Pd.DataFrame의 categorical data

dataframe의 column을 category로 만들면 좋아지나요? 저는 그냥 귀찮아서, 보통 categorical data인 것 같으면, 를 이용해서 one-hot encoding으로 처리해버렸습니다. 어차피 random-forest를 돌릴...

•⏱ 약 1분 소요•
#python#python-libs#pandas#dataframe
읽어보기→
#338

RNN을 사용해봅시다.

RNN을 사용해보려고 합니다. CNN은 이제 대충 써볼 수 있는데, RNN을 몰라요. 공부합시다! 간단하게, RNN을 이용하면, sequential data의 흐름을 예측할 수 있습니다. sequential data에 속하는 것들로는 주식, 글,...

•⏱ 약 2분 소요•
#python#neural-network#python-libs#rnn
읽어보기→
#339

R처럼 python에서도 pipeline을 사용합시다.

sklearn - pipeline 사용하기 R을 사용해보신 적이 있는 분들은 알겠지만, R은 을 사용해서, pipeline을 구성할 수 있습니다(제가 R을 별로 좋아하지는 않는데, 이거 하나는 굉장히 좋아합니다). machine-learning이...

•⏱ 약 1분 소요•
#python#python-libs#sklearn#pipeline
읽어보기→
#340

Scikit-learn - Regression 방법 정리

regression 방법들을 정리합니다. 아주 엄밀하게는 내가 쓰는 모델들의 적합성, 그리고 그 의미를 다 알고 사용하는 것이 맞기는 한데, 늘 만나는 문제는 "왜 되지?", "왜 안되지?"입니다. 왜 되는 것인지, 왜 안 되는 것인지, 저도 몰...

•⏱ 약 1분 소요•
#python#sklearn#machine-learning
읽어보기→
#341

Statsmodel 활용하기

statsmodel을 쪼개봅시다. 최근에 timeseries의 stationarity를 검증하려고 관련 파이썬 라이브러리들을 찾아봤는데, statsmodel이라는 라이브러리가 있더군요. 아마도, 추가로 더 유용한 통계 검정 기법들이 더 있지 않을...

•⏱ 약 1분 소요•
#python#python-libs#statsmodel
읽어보기→
#342

Neo4j - Introduction to Neo4j index.

Neo4j - Introduction to Neo4j에 대한 part 7개를 각각 다음과 같이 정리하였습니다. 1. neo4j : part 1 : Introduction to Graph Databases. 1. neo4j : part 2 : In...

•⏱ 약 2분 소요•
#neo4j#database#sql#gql
읽어보기→
#343

Py2neo를 설치해봅니다.

install py2neo 요즘 neo4j의 graphacademy에서 제공하는 data-science 수업을 듣고 있습니다. 직접 py2neo등의 라이브러리를 로컬에 설치할 필요 없이, 그냥, jupyter notebook에서 설치해서 돌려볼 ...

•⏱ 약 4분 소요•
#database#graphdb#neo4j#py2neo
읽어보기→
#344

Pandas - dataframe - sampling

dataframe sampling 을 기본 데이터구조로 관리할 때, 종종 랜덤하게 데이터를 샘플링하고 싶을 때가 있습니다. 가령, cross-validation처럼 처리를 하고 싶을 때 라거나, noise imbalance 문제로 인해서, 클래스...

•⏱ 약 2분 소요•
#python#python-libs#dataframe#sampling
읽어보기→
#345

NetworkX: random partition graph

요즘은 networkx에서 community detection에 대해서 정리하고 있습니다. 테크닉들에 대해서 테스트를 해보려면, 클러스터가 몇 개로 구성된 예제그래프가 필요합니다. 그리고, 당연히도, 에서 이러한 예제 그래프를 지원하죠. 위와 같...

•⏱ 약 1분 소요•
#python#python-libs#networkx
읽어보기→
#346

Understanding Visualization Data

intro. coursera의 수업 중에 Understanding visualization data 코스를 공부하고 내용을 정리하였습니다. 사실 이 수업보다는 이 다음 수업인 Inferential Statistical Analysis with P...

•⏱ 약 3분 소요•
#python#python-libs#coursera
읽어보기→
#347

Python: chardet

흔히 를 사용하다고, 이 적합하지 않다거나, unicode error라거나 하는 문제들이 발생하고는 합니다. 이는 csv 파일의 인코딩 방식과 읽어들일 대 해석하는 decoding 방식이 다르기 때문이죠. 하지만, 제가 직접 csv 파일을 만든 ...

•⏱ 약 3분 소요•
#python#python-libs#chardet#encoding
읽어보기→
#348

Statsmodel - proportion confidence interval.

statsmodel로 binomial proportion에 대한 신뢰구간 구하기. binomial proportion에 대해서 신뢰 구간을 계산하기 위하여, python의 통계 패키지인 을 사용합니다. 예를 들어, 대한민국 남성들의 흡연율(pro...

•⏱ 약 2분 소요•
#python#python-libs#coursera#statsmodel
읽어보기→
#349

Pandas: check encoding.

check your encoding file. 보통 로 csv 파일들을 읽을 때 가장 흔히 발생하는 에러로 다음의 것이 있죠. 길게 되어 있지만, 그저 "원래 파일이 utf-8로 인코딩되어 있지 않은데, utf-8로 인코딩하려고 해서 발생하는 문...

•⏱ 약 12분 소요•
#python#python-libs#pandas#csv
읽어보기→
#350

Inferential Statistical Analysis with Python - WEEK 2

WEEK 3 - Statistical Inference with Confidence Intervals 2주차에서는 주로 Confidence interval을 배웠으며, 어떻게 계산하고 해석하는지, 그리고 Confidence라는 것이 의미하는 것은...

•⏱ 약 11분 소요•
#python#python-libs#coursera#statsmodel
읽어보기→
#351

Inferential Statistical Analysis with Python - WEEK 3

WEEK 3 - HYPOTHESIS TESTING 이 단계에서는 가설 검정에 대한 부분을 배웁니다. 즉, WEEK 2에 배웠던 5가지 기법을 사용하여, hypothesis testing에 대해서 배우고, 이를 해석합니다. Introduction ...

•⏱ 약 6분 소요•
#python#python-libs#coursera#statsmodel
읽어보기→
#352

Python: scipy - 두 집단의 평균이 같은지 파악하는 ttest

두 집단이 있다고 합시다. 남성과 여성이라는 두 집단이 있습니다. 가령 이 두 집단이 같은 성질을 가지는지, 다른 성질을 가지는지 비교를 해보고 싶을 때가 있겠죠. 예를 들어, 이 두 집단의 키 평균은 같다고 할 수 있는지 혹은 다른지 등에 대해...

•⏱ 약 5분 소요•
#python#python-libs#statsmodels#scipy
읽어보기→
#353

Python: statsmodel - proportion ztest.

normal dist.를 따르는 proportion에 대한 test. 우리가 표본 집단으로부터 라는 비율을 측정했습니다. 충분히 많은 에 대해서 측정했고, 따라서, 또한, normal distribution을 따르겠죠. 그리고, 우리가 랜덤변수 ...

•⏱ 약 5분 소요•
#python#python-libs#coursera#statsmodels
읽어보기→
#354

Python: statsmodel - ttest independent samples

서로 다른 두 집단의 평균이 같은지를 테스트하자. 두 집단(남성과 여성, 흑인과 백인, 청소년과 노인 등등등) 에 대해서 이 두 집단의 평균이 같은지를 테스트 해봅니다. 를 사용해도 되지만, 에도 같은 방식이 있어서, 이 값을 이용해서 정리를 해...

•⏱ 약 3분 소요•
#python#python-libs#coursera#statsmodels
읽어보기→
#355

Pandas: crosstab, pivot_table

우리가 이미 를 사용해서 필요한 데이터를 엑셀처럼 깔끔하게 구축해두었다고 합시다. 그런데, 이 데이터들을 혼합해서 간단한 cross-table을 만들고 싶을 때가 있죠. cross-table은 가령, 우리에게 , , 이라는 세 가지의 칼럼이 있다...

•⏱ 약 10분 소요•
#python#python-libs#pandas#crosstab
읽어보기→
#356

Pandas: Ordered crosstab, pivot_table

순서를 유지한 채 crosstab을 만들기. CrossTable은 복잡한 데이터세트로부터, 다양한 그룹별로 데이터들이 어떻게 분포되어 있는지 row, column으로 분리하여 봄으로써, 데이터의 특징에 대한 직관적인 해석을 지원합니다. 그리고, ...

•⏱ 약 7분 소요•
#python#python-libs#pandas#crosstab
읽어보기→
#358

Fitting Statistical Models to Data with Python - WEEK 2 - Part 2

probability, odds, logodds. 이제, binary outcome을 예측하는 모델을 만든다. 여기서는 라고 하는, '흡연 유무(정확히는, "인생에서 최소 100개의 담배를 피웠는가"라는 질문에 대한 응답)'을 response v...

•⏱ 약 25분 소요•
#python#python-libs#coursera#statsmodel
읽어보기→
#359

Fitting Statistical Models to Data with Python - WEEK 3 - part 1

Fitting a multilevel Model 본 주차에서는 자폐증(autism)을 가진 아이들을 대상으로 수행된 longitudinal study를 대상으로 데이터를 분석한다. 주로 다음의 변수들을 분석한다. - : "피실험자들의 나이", 2...

•⏱ 약 18분 소요•
#python#python-libs#coursera#statsmodels
읽어보기→
#362

Pandas: read csv with datatypes

csv에서 특정 column을 string으로 읽고 싶을 때. 은 사실 엑셀과 유사합니다. 엑셀처럼 각 칼럼의 데이터타입을 지정하고 관리할 수 있죠. 아무튼, 가끔, csv에 저장된 값은 이라는 문자열인데, 이를 그대로 로 읽으면. 이라는 flo...

•⏱ 약 2분 소요•
#python#python-libs#pandas#datatype
읽어보기→
#363

Fitting Statistical Models to Data with Python - WEEK 1 - Part 1

WEEK 1 - OVERVIEW & CONSIDERATIONS FOR STATISTICAL MODELING 이 코스에서는 주로 라는 파이썬 라이브러리를 주로 활용하며, 이를 활용해 이전에 배운 간단한 통계적 기법을 배웁니다. 지금이야, 워낙 뉴럴...

•⏱ 약 26분 소요•
#python#python-libs#coursera#statsmodel
읽어보기→
#364

Fitting Statistical Models to Data with Python - WEEK 1 - Part 2

Data Modeling in Python 일반적으로, 데이터에 대해 통계적 모델을 세운다는 것은 다음과 같은 과정에 따라서 진행된다. 1. varaible이 가지는 분포에 대한 성질(mean, variance, covariance)를 유추(es...

•⏱ 약 2분 소요•
#python#python-libs#coursera#statsmodel
읽어보기→
#365

Python: patsy - overview.

patsy: python package for describing statistical models. 요즘, 아는 후배가 물어봐서 conjoint 분석이라는 것을 조금 수행하고 있었습니다. 특정 사용자 군을 대상으로 discrete choice ...

•⏱ 약 4분 소요•
#python#python-libs#patsy#statistics
읽어보기→
#366

Pandas: save dataframe as hdf5.

pd.dataframe을 hdf5의 형식으로 저장합시다. 보통 우리는 을 그냥 무심코, 의 형태로 저장하고는 합니다. 하지만, 슬프게도, csv로 저장하면 다음과 같은 문제들이 발생하죠. - 비효율성) string으로 저장하므로 데이터 용량을 많...

•⏱ 약 3분 소요•
#python#python-libs#pandas#hdf5
읽어보기→
#367

Python: static type checking - mypy

Background) Static-type and Dynamic-typed checking python이전에 비교적 전통적인 프로그래밍 언어에 속하는 c, c++, java 등의 언어를 사용해보신 분들은 다음과 같은 형태로 코드를 작성하는 것이 ...

•⏱ 약 9분 소요•
#python#static-type#type-checking#mypy
읽어보기→
#368

Python: static type checking - mypy more.

intro. 이전의 post에서, 를 사용하여 비교적 간단한 static type checking을 하는 짓을 해봤습니다. 이 post에서는 에 대한 개괄적이 설명과, 무엇을 더 할 수 있는지에 대해서 알아보겠습니다. What is mypy? 는...

•⏱ 약 4분 소요•
#python#static-type#type-checking#mypy
읽어보기→
#370

Pandas: use it clever.

intro. 2019년에 진행된 pycon 발표자료들을 다시 보면서, 제가 모르는 것들이 무엇이 있었는지를 정리하고 있습니다. 그러던 중에 뚱뚱하고 굼뜬 판다스(Pandas)를 위한 효과적인 다이어트 전략이라는 자료를 보고, 제가 알던 내용과 모...

•⏱ 약 15분 소요•
#python#python-libs#pandas#panquet
읽어보기→
#371

Pandas: reading and writing feather

what is feather? Feather provides binary columnar serialization for data frames. It is designed to make reading and writing data frames e...

•⏱ 약 2분 소요•
#python#python-libs#pandas#parquet
읽어보기→
#372

Pandas: reading and writing parquet

save pd.Dataframe as parquet. 우리는 dataframe을 습관적으로 로 저장합니다. 하지만, 이 아이는, 메타데이터를 저장할 수 없어 칼럼별로 dtype을 재지정해줘야 하는 일이 생길 수 있다는 것과, 읽고 쓸때 시간이 많...

•⏱ 약 2분 소요•
#python#python-libs#pandas#parquet
읽어보기→
#373

Python: pulp - sensitivity analysis

LP for handling uncertainty. 기본적으로 LP는 특정한 상황(constraint)일 때 최적의 해를 구하는 방법이죠. 따라서 만약 coef들이 달라진다면, 최적해도 달라지게 됩니다. 우리가 가정한 모든 값들이 무조건 맞다고 ...

•⏱ 약 6분 소요•
#python#python-libs#gurobi#lp
읽어보기→
#374

Optimization in python with cvxpy

Optimization. 요즘 대부분의 사람들은 '머신러닝'에 꽂혀 있지만, 그 외로 최적화(Optimization)이라는 분야가 있죠. 일반적으로, 주어진 제한조건(constraint)들 내에서, 우리가 목적으로 하는 함수(objective f...

•⏱ 약 6분 소요•
#python#python-libs#gurobi#lp
읽어보기→
#375

Optimization in python with pulp - Basic.

python으로 선형 계획법 문제를 풀어 봅시다. pulp라는 python에서 linear programming을 할 수 있는 라이브러리를 정리합니다. 우선, 본격적으로 최적화 문제를 풀어야 한다면, 즉, 변수들의 수가 엄청나게 많고 복잡하다면,...

•⏱ 약 8분 소요•
#python#python-libs#gurobi#lp
읽어보기→
#376

Python: gurobi - Linear Programming.

What is gurobi? 요즘 대부분의 사람들은 '머신러닝'에 꽂혀 있지만, 그 외로 최적화(Optimization)이라는 분야가 있죠. 일반적으로, 주어진 제한조건(constraint)들 내에서, 우리가 목적으로 하는 함수(objective...

•⏱ 약 1분 소요•
#python#python-libs#gurobi#lp
읽어보기→
#377

Python: auto formatter - autopep8, yapf

PROBLEM: autopep8 not install 저는 vscode를 주 IDE로 쓰고 있습니다. 특별한 이유는 없고요 그냥 쓰다보니 쓰고있네요. 아무튼, python을 주로 쓰고 있는데, python을 확장 프로그램으로 설치를 해야, 각 클...

•⏱ 약 4분 소요•
#python#python-libs#formatter#autopep8
읽어보기→
#378

NetworkX: AtlasView object

Error: 'AtlasView' object does not support item assignment 로 코딩을 하다보면 종종 뜨는 에러 중에서 다음의 에러가 있습니다. 에러 코드를 그대로 해석하자면 "AtlasView 오브젝트는 item a...

•⏱ 약 2분 소요•
#python#python-libs#networkx
읽어보기→
#379

NetworkX: Make Subgraph and performance check.

Graph로부터 subgraph를 만들어봅시다. Graph를 분석하다보면, 필요에 따라서, subGraph를 만들어야 할 때가 있습니다. 이럴 때는 두 가지 방식이 있는데, 와 이미 가진 graph object인 의 class method로 접근...

•⏱ 약 14분 소요•
#python#python-libs#networkx#subgraph
읽어보기→
#380

NetworkX: nx.set_node_attribute

node, edge의 attribute를 업데이트하자. 대상을 graph로 표현한 다음 필요에 따라서 각 graph의 node, edge의 attribute를 업데이트합니다. 필요에 따라서, weight, centrality 등 다양한 값들을 업...

•⏱ 약 7분 소요•
#python#python-libs#networkx#set_attribute
읽어보기→
#381

Psutil을 사용해서 python의 CPU, RAM의 사용량을 확인하자.

intro. 코딩을 어느 정도 하다보면, "코드 자체를 생산하는 것"은 꽤 쉬운 일이라는 생각이 들때가 있습니다. 그 즈음에 드는 생각은 "어떻게 해야 더 효율적이고 빠른 코드를 만들 수 있을까?"죠. 원론적으로 이를 해결하기 위해서는, 프로그래...

•⏱ 약 8분 소요•
#python#python-basic#performance-checking#psutil
읽어보기→
#384

Python: jupyter notebook web browser 변경하기.

intro. 저는 맥북을 쓰고 있습니다. 그래서 기본 브라우저는 보통 safari로 설정되어 있죠. 저한테는 크롬이 주 웹 브라우저이고, 따라서 그냥 jupyter notebook은 safari에서 굴러가도록 하는 것이 필요에 따라서는 더 편할 ...

•⏱ 약 2분 소요•
#python#python-libs#jupyter-notebook
읽어보기→
#386

Python: jupyter notebook theme 변경하기.

우선 세부적으로 설정을 바꾸고 싶으신 분들은 jupyter notebook 커스토마이징하기.라는, 제가 전에 쓴 글을 봐주시면 됩니다. 하지만, 가능하면 하나하나씩 설정을 바꾸지 마시고, 테마로 한번에 뜯어고치시는 것이 유지보수 측면에서 훨씬 좋...

•⏱ 약 1분 소요•
#python#python-libs#jupyter-notebook
읽어보기→
#387

NetworkX: `G.neighbors(n1)` is slower.

Graph에서 Node간의 연결성을 확인하기 위해서는, AtlasView로 접근하는 것이 훨씬 빠르다. 대상을 그래프로 관리하고 있을 때, 많이 활용하게 되는 것으로는, 과 가 연결되어 있는가 연결되어 있지 않은가? 입니다. 같은 말이지만 "이 ...

•⏱ 약 13분 소요•
#python#python-libs#networkx#neighbors
읽어보기→
#388

NetworkX: Node Connectivity.

networkx - approximation for NODE connectivity Graph는 기본적으로 빠르게 처리하는 것이 어렵습니다. 테이블과 같은 형태라면, 비교적 어느 정도 병렬적으로 처리할 수 있는데(서로 데이터가 독립적이기 때문),...

•⏱ 약 7분 소요•
#python#python-libs#networkx#connectivity
읽어보기→
#389

NetworkX: K-components.

K - component. 는 graph 가 있을 때, 모든 node의 local node connectivity가 최소한 k인, maximal subgraph를 말한다("maximal"은 "만들 수 있는 최대의 그래프"라고 해석하면 될텐데, s...

•⏱ 약 5분 소요•
#python#python-libs#networkx#components
읽어보기→
#390

NetworkX: clique, max independent set

Average clustering coefficient of Graph. background local clustering of each node 는 각 노드에 대한 clustering(밀집도)를 말하며, 해당 노드 이웃들과 구성할 수 있는 모든...

•⏱ 약 7분 소요•
#python#python-libs#networkx#clique
읽어보기→
#391

NetworkX Centrality: Degree

networkx - Degree Centrality. 는 각 node에 직접 연결된 node의 수를 말한다. 아주 단순히 봤을 때, 이 값이 클수록 해당 노드가 그래프에서 가지는 직접적인 영향력이 큰 것은 자명하며, 이 값을 중심으로 node의 ...

•⏱ 약 3분 소요•
#python#python-libs#networkx#centrality
읽어보기→
#392

NetworkX: clique, max independent set

What is Clique? clique는 maximal complete subgraph(모든 node pair 간에 edge가 있는 subgraph)라고 생각하시면 됩니다. ㅇ 가령, 노드 A, B, C가 있을 때, 서로 모두 연결되어 있다면(...

•⏱ 약 7분 소요•
#python#python-libs#networkx#clique
읽어보기→
#393

What is eigen vector, value?

Eigen Value and Vector: 분명히 학부 때 배웠던 것입니다만. 제 기억이 맞다면, 2008년(아 너무 먼 옛날이다)에 학교 "선형 대수학(Linear algebra)"에 분명히 배웠던 기억이 있습니다. 물론 아주 엄청나게 예전이고...

•⏱ 약 9분 소요•
#python#python-libs#networkx#centrality
읽어보기→
#394

NetworkX Centrality: Eigenvector centrality

Eigenvector centrality는 일반적으로 네트워크 내 노드들의 영향력을 측정하기 위해 사용되는데, 직접적인 영향력만을 반영하며, 노드간의 차이를 구별하지 않는 degree cetrality와 다르게, "중요한 노드(네트워크 내에서 영...

•⏱ 약 9분 소요•
#python#python-libs#networkx#centrality
읽어보기→
#395

NetworkX Link Prediction: CN, RA with cluster info.

line summary 각 node가 어떤 community에 속하는지를 고려하여 CN(Common neighbor)와 RA(Resource Allocation Index)를 보정함. 2012년 프로시딩에서 발표했던 논문인 Using commun...

•⏱ 약 7분 소요•
#python#python-libs#networkx#link-prediction
읽어보기→
#396

NetworkX: closeness centrality

Centrality - Closeness Centrality closeness centrality는 흔히, "근접 중심성"이라고 말하는데, "어떤 Node A에서 다른 모든 노드(reachable nodes)에 도달하기 위한 최단거리의 길이(sh...

•⏱ 약 4분 소요•
#python#python-libs#networkx#centrality
읽어보기→
#397

NetworkX Centrality: Katz centrality

Katz Centrality는 Network 내 Node의 중심성(centrality)를 측정하기 위한 방법 중 하나입니다. 다른 centrality measure들과는 다르게, node pair간의 path를 고려하여 영향력을 측정합니다. 가령...

•⏱ 약 7분 소요•
#python#python-libs#networkx#centrality
읽어보기→
#398

Scipy - Solve a linear matrix equation

간단한 선형 방정식 풀기. 간단한 선형방정식()을 풉니다. 단, a는 diagonal matrix(rectangular matrix)여야 하죠. 를 사용해야 하죠.

•⏱ 약 1분 소요•
#python#python-libs#networkx#centrality
읽어보기→
#399

NetworkX: current flow betwenness centrality.

current flow betweenness centrality. 이전에, closeness centrality를 이야기할 때도, 라는 이름으로, 측정한 것이 있었죠. betwenness centrality도 마찬가지로, 전류 모형을 적용하여, ...

•⏱ 약 6분 소요•
#python#python-libs#networkx#centrality
읽어보기→
#400

NetworkX Centrality: betweenness centrality

는 "G의 모든 node pair의 최단 거리에, node V가 얼마나 많이 포함되는지를 비율로 표현하여, node V가 전체 그래프의 흐름에 얼마나 영향을 미치는지"를 측정하는 지표입니다. 즉, 계산 방법은 다음처럼 간단하죠 1) 모든 node...

•⏱ 약 5분 소요•
#python#python-libs#networkx#centrality
읽어보기→
#401

NetworkX Centrality: edge betweennss centrality

edge betweennss centrality "edge betwenness centrality"는 node betweenness centrality와 유사한데, "node"를 shortest path의 비율을 계산하는 것이 아니라, edge를...

•⏱ 약 2분 소요•
#python#python-libs#networkx#centrality
읽어보기→
#402

NetworkX Centrality: information centrality

Information Centrality 는 "Current Flow Closeness Centrality"라고도 부릅니다. 여기서 "Current"는 "전류"를 가리키죠. 즉 "전류 흐름에 근거한 근접 중심성 분석"이라는 말이 되죠. 흔히들 네...

•⏱ 약 6분 소요•
#python#python-libs#networkx#centrality
읽어보기→
#403

NetworkX: Line Graph.

What is Line Graph? Line Graph는 그냥 "Node를 Edge로 Edge를 Node로 변형한 그래프를 말합니다". 가령, edge들이 로 존재하는 그래프(Node: 0, 1)의 Line Graph는 로, edge가 하나뿐인 ...

•⏱ 약 4분 소요•
#python#python-libs#networkx#line-graph
읽어보기→
#404

Check path where it is file or directory?

path가 file인지 director인지 확인합시다 보통, python에서 해당 경로에 위치한 path를 모두 읽고, file인지, path인지에 따라서 다른 제어를 해야 한다고 합시다. 가령, 폴더인 경우는 recursive하게 다시 해당 폴...

•⏱ 약 2분 소요•
#python#python-libs#os
읽어보기→
#405

Definitions of walk, trail, path, cycle, circuit

: "Node, edge가 반복되어도 상관없으며, graph에서 발생할 수 있는 - : walk중에서 source와 target이 같은 경우. - : walk 중에서 source와 target이 다른 경우. : "edge가 반복되지 않는" wal...

•⏱ 약 8분 소요•
#python#python-libs#networkx
읽어보기→
#406

NetworkX: communicability betweenness centrality

Centrality - communicability betweenness centrality 전통적인 개념에서는 network를 분석할 때, shortest path만을 고려하게 됩니다. 하지만, 이는 실재적인 graph의 특성을 반영하지 못하죠...

•⏱ 약 7분 소요•
#python#python-libs#networkx#centrality
읽어보기→
#407

NetworkX: group betweenness centrality

centrality - group betweenness centrality node betweenness centrality는 "그래프의 모든 node pair 간의 shortest path 중에서 node 을 지나는 최단거리의 비율"을 말하죠....

•⏱ 약 2분 소요•
#python#python-libs#networkx#centrality
읽어보기→
#408

Scipy - matrix exponential

matrix exponential: scipy.linalg.expm(A) matrix exponential은 square matrix에 exponential function을 적용하여 도출된 matrix를 말하며, 일반적으로 생각하는 와 동일합니...

•⏱ 약 6분 소요•
#python#python-libs#numpy#matrix
읽어보기→
#409

NetworkX: communicability

What is communicability? networkx documentation에 작성된 의미에 따르면, 다음과 같습니다. The communicability between pairs of nodes in G is the sum of clo...

•⏱ 약 10분 소요•
#python#python-libs#networkx#communicability
읽어보기→
#410

NetworkX: harmonic centrality

centrality - harmonic centrality. harmonic centrality는 다른 모든 노드들인 v들로부터, 해당 노드인 u까지 향하는 "최단 거리의 길이(shortest path length)의 역수"를 모두 더한 값을 말...

•⏱ 약 11분 소요•
#python#python-libs#networkx#centrality
읽어보기→
#411

NetworkX: subgraph centrality

What is subgraph centrality? subgraph centrality는 "node가 graph의 subgraph에 속할 비율"을 말합니다. subgraph의 크기가 커질수록, penalty를 먹입니다(즉, 작은 subgraph일...

•⏱ 약 6분 소요•
#python#python-libs#networkx#centrality
읽어보기→
#412

NetworkX: load centrality

what is load centrality? networkx documentation에 작성된 "load centrality"는 다음과 같습니다. The load centrality of a node is the fraction of all sh...

•⏱ 약 11분 소요•
#python#python-libs#networkx#centrality
읽어보기→
#414

NetworkX: algorithms - clustering

networkx - clustering의 내용들을 정리합니다. triangles 에서 node 을 포함한 삼각형의 수를 말합니다. transitivity 번역이 조금 어려운데, '이행성, 전달성, 전이성'정도로 이해하시면 됩니다. 오히려 이 개념...

•⏱ 약 6분 소요•
#python#python-libs#clustering#triangle
읽어보기→
#415

NetworkX: percolation centrality

Percolation은 한국말로 "여과"입니다. 커피를 만들때 필터에 커피를 투과시키는 것을 보통 여과라고 하죠. 그리고, node 의 Percolation centrality는 해당 노드를 지나가는 "percolated path(여과된 길)"의...

•⏱ 약 7분 소요•
#python#python-libs#networkx#centrality
읽어보기→
#416

NetworkX Community: girvan newman method.

community detection 방법은 네트워크에서 보다 긴밀한 관계를 가지는, 노드 그룹을 뽑아내는 방법을 말합니다. 특히, girvan newman method는 가장 가치가 높은 edge를 순차적으로 잘라나가면서 group을 계층적으로 ...

•⏱ 약 8분 소요•
#python#python-libs#networkx#community
읽어보기→
#417

NetworkX Centrality: dispersion

centrality - dispersion "dispersion"은 Romantic Partnerships and the Dispersion of Social Ties에서 제안한 개념으로, 기존의 embeddedness와 약간은 다른 개념입니다....

•⏱ 약 6분 소요•
#python#python-libs#networkx#centrality
읽어보기→
#418

NetworkX: Configuration model.

What is Configuration model. Configuration model은 Node들에 대한 Degree sequence가 주어졌을 때, degree sequence를 그대로 유지한 상태로, random network를 만드는 방법...

•⏱ 약 5분 소요•
#python#python-libs#networkx#modularity
읽어보기→
#419

NetworkX Community: measuring partition(coverage, performance)

intro - community evaluation. graph에서 내부에 존재하는 다양한 소그룹, 이른바 community를 뽑아내었다고 해봅시다. 가령 "방법1로 community를 도출한 경우", "방법2로 community를 도출한 경우"...

•⏱ 약 17분 소요•
#python#python-libs#networkx#community
읽어보기→
#420

NetworkX Community: greedy modularity communities

1-line summary girvan-newman method말고, networkx - greedy modularity communities를 사용하면, 훨--씬 빠르게, 더 높은 modularity를 가지는 community 집단을 뽑아낼 수...

•⏱ 약 8분 소요•
#python#python-libs#networkx#community
읽어보기→
#421

NetworkX Community: modularity

3-line summary modularity는 네트워크에서 클러스터링을 수행했을 때, 얼마나 잘 나누었는지를 측정하기 위한 지표. configuration model을 null model로 하여 random할때보다 얼마나 더 차이가 있는지를 비...

•⏱ 약 15분 소요•
#python#python-libs#networkx#community
읽어보기→
#422

NetworkX Link Prediction: Adamic/Adar index

1-line summary "Adamic/Adar index"는 "Resource Allocation Index"와 매우 유사하나, 각 값에 log를 취해서 더해준다는 차이만 있음. Adamic Adar index 개념이 매우 간단하므로 pyth...

•⏱ 약 3분 소요•
#python#python-libs#networkx#distance
읽어보기→
#423

NetworkX Link Prediction: jaccard coeffcient

2-line summary jaccard coeffcient는 (두 집합간의 intersection set)/(두 집합간의 union set)임. 매우 간단하며, 네트워크뿐만 아니라 일반적인 data mining쪽에서도 "거리"등을 측정하기 위해...

•⏱ 약 2분 소요•
#python#python-libs#networkx#distance
읽어보기→
#424

NetworkX Link Prediction: Preferential attachment

3-line summary preferentail attachment는 이른바 "빈익빈 부익부"를 말하며, "강한 놈은 더 강해진다"라는 의미죠. 네트워크에서도 동일하며, 새로 발생할 가능성이 높은 link는 아마도, "힘이 쎈 노드들일 수록 붙...

•⏱ 약 2분 소요•
#python#python-libs#networkx#distance
읽어보기→
#425

NetworkX: algorithms - cliques

3 line-summary 에서 제공하는 clique 관련 함수들을 정리하였습니다. clique는 graph내에 존재하는 complete-subgraph를 말함. 매우 기본적인 graph의 특성이며, 각 노드가 어떤, 그리고 몇 개의 clique...

•⏱ 약 11분 소요•
#python#python-libs#networkx
읽어보기→
#426

NetworkX: distance measure

2-line summary Graph에서 에 근거한 다양한 함수들을 정리함. , , 등 매우 기본적인 graph의 기본적인 지표 및 개념들 정리. Do it using 어려운 코드가 아니어서, 아래에 그대로 정리하였습니다. reference ne...

•⏱ 약 6분 소요•
#python#python-libs#networkx#distance
읽어보기→
#428

NetworkX: connectivity

3-line summary. 네트워크에서 component)는 "connected component"라고 불리기도 하며, "집단 내 어떤 두 노드 사이에도 path가 존재하는 집단"을 보통 말한다. networkx - component compo...

•⏱ 약 8분 소요•
#python#python-libs#networkx#connectivity
읽어보기→
#429

NetworkX: similarity - SimRank

3-line summary SimRank는 "비슷한 사람에 의해서 가리켜지면, 비슷한 사람일 것이다"라는 가정에 기반한 node, similarity 계산법. 여기서 중요한 것은 "비슷한"이라는 말로, recursive의 형태로 "비슷함"을 적용...

•⏱ 약 12분 소요•
#python#python-libs#networkx#similarity
읽어보기→
#430

NetworkX: strong connectivity and its condensation.

2-line summary node끼리 서로 양방향으로 path가 모두 있는 것이 strong-connectivity. 한 방향만 있는 것이 weak-connectivity. strong connectivity https://en.wikipedi...

•⏱ 약 13분 소요•
#python#python-libs#networkx#connectivity
읽어보기→
#431

NetworkX: isolates.

intro. networkx - algorithms - isolates에 있는 내용을 정리합니다. 사실, 우리가 다루는 네트워크에서, "어떤 노드와도 연결되어 있지 않은 node"를 "isolate"라고 합니다. . networkx 다음의 함수들...

•⏱ 약 4분 소요•
#python#python-libs#networkx#isolate
읽어보기→
#432

NetworkX: Link Analysis - HITS(Hyperlink-Induced Topic Search)

line summary HITS는 webpage들은 hub(포탈 사이트), authoriy(파워블로그)로 구분할 수 있다는 가정하에서, 각 페이지별로, 이 값을 계산하면서 상호 재귀 방식(mutual recursion)으로 값을 계산한다. 모든 ...

•⏱ 약 9분 소요•
#python#python-libs#networkx#centrality
읽어보기→
#433

NetworkX: Link Analysis - PageRank

2-line summary for PageRank pagerank는 "(web)Page의 순위(Rank)를 매기는 방법"을 말하며, page를 노드로 in-link, out-link를 edge로 고려하여 그래프를 만들고, 그래프에 기반해 node...

•⏱ 약 12분 소요•
#python#python-libs#networkx#centrality
읽어보기→
#434

SyntaxError - non-default argument follows default argument

Intro: 초기값 있는 argument는 맨 뒤로 아래 코드가 떴다는 이야기는, 함수의 argument의 순서로 볼 때, 처럼 초기 값을 정한 argument 앞에 이렇게 온 경우를 말함. 아래를 보시면 좀 더 명확할 것 가텐요. Why? 왜 ...

•⏱ 약 2분 소요•
#python#python-libs#syntax#error
읽어보기→
#435

NetworkX Community: label propagation(async)

line summary "label propagation"은 내 이웃들이 많이 속한 label이, 내 label이다, 라는 접근으로, 직관적인 개념에 기반하여 community을 만들어 나감. async Label Propagation Label...

•⏱ 약 8분 소요•
#python#python-libs#networkx#community
읽어보기→
#436

NetworkX Community: label propagation(semi-sync)

3-line summary async label propagation은 매우 오래 걸리고, sync 방법은, bipartite network에서 발산하는 경우가 있어서, Community Detection via Semi-Synchronous L...

•⏱ 약 15분 소요•
#python#python-libs#networkx#community
읽어보기→
#437

NetworkX: coloring - greedy coloring

line summary. What is Graph Coloring? Graph coloring은, 말 그대로 "Graph에 색칠을 하는 것"을 말합니다. 단, 여기서 필요한 색깔의 수 를 최소화하는 것을 보통 목적으로 하죠. 그리고 node를 색...

•⏱ 약 6분 소요•
#python#python-libs#networkx#coloring
읽어보기→
#438

PyAutomation - pyautogui - install.

2-line summary macOS에서 pyautogui를 설치하고 간단한 테스트를 실행해봄. AI가 내 마우스와 키보드를 건드린다는 게 무서운데(만약, 프로그램이 멈추지 않을 수도 있으니까), 마우스를 스크린 4 꼭지점에 가져가면, 알아서 E...

•⏱ 약 8분 소요•
#python#python-libs#automation#pyautogui
읽어보기→
#439

PyAutomation - pyautogui - Mouse Control.

1-line summary pyautogui를 이용하면, 마우스 위치 이동, 클릭, 스크롤, 드래그 등을 처리할 수 있음. Cheat sheet for pyautogui - mouse 를 이용한, 마우스 동작을 아래 코드로 정리하였습니다. ref...

•⏱ 약 4분 소요•
#python#python-libs#automation#pyautogui
읽어보기→
#440

PyAutomation - pyautogui - Keyboard Control.

1-line summary pyautogui를 이용하면, 키보드의 버튼을 누르고(press) 누르고 있고(keydown), 떼고(keyup) 등을 할 수 있음. Cheat sheet for pyautogui - Keyboard 를 이용한, 키보드...

•⏱ 약 3분 소요•
#python#python-libs#automation#pyautogui
읽어보기→
#441

PyAutomation - pyautogui - Screenshot

1-line summary pyautogui를 이용하여, 화면의 스크린샷을 파일로 저장하고, 필요에 따라, 이미지가 화면에서 어디에 위치하는지를 찾을 수 있음. 다만, 어떤 방식으로 찾는지 정확도는 어떠한지에 대해서는 확인이 필요함. Cheat ...

•⏱ 약 3분 소요•
#python#python-libs#automation#pyautogui
읽어보기→
#442

PyInstaller - python code 실행 파일 만들기.

3-line summary pyinstaller를 이용하면, 간단한 python 프로그램을 실행파일(exe)로 만들수 있습니다. 하지만, 어떤 파이썬 라이브러리를 import하느냐에 따라서 만들어지는 속도, 용량 차이는 물론, 실패할 가능성도 있...

•⏱ 약 9분 소요•
#python#python-libs#pyinstaller#macos
읽어보기→
#443

Merssenne Twiste 난수 생성기 python으로 코딩.

3-line summary 를 비롯하여 최근의 많은 random number 생성은 MersenneTwister에 기반하고 있다. MersenneTwister는 (624개의 모수를 생성) => (각각의 모수로부터 "복잡한 공정"을 통해 새로운 난...

•⏱ 약 21분 소요•
#python#python-basic#hexagonal#random
읽어보기→
#445

Python bit operator

사실, bit operator를 쓸 일이 거의 없기는 한데, 잠깐 써야할 일이 있어서 이 때 정리해두기로 합니다. 내용 자체가 복잡하지 않으므로, 코드에 주석을 달아서 그대로 정리하였습니다. 결과는 다음과 같죠. reference geeoksfo...

•⏱ 약 2분 소요•
#python#python-basic#bit#bit-operator
읽어보기→
#446

Python 숫자 출력시에, 부호(sign) 출력하는 옵션.

3-line summary : +, - 모두 표시함. : -만 표시함. : -만 표시하고, +경우에는 그냥 공백. 부호때문에 칸이 달라지는 것이 꼴보기 싫습니다 가령, 우리가, 음수와 양수가 섞여 있고 서로 다른 자릿수가 섞여 있는 리스트들을 출...

•⏱ 약 2분 소요•
#python#python-basic#string#string-format
읽어보기→
#447

Python에서, 2, 8, 16진법을 표현하는 prefix.

2 line summary python에서는 , , 를 사용해서 2, 8, 16진법을 표현함. 16진법(hexagonal)를 표현하기 위해 를 사용하는 이유는, 사실 별거 없고 우연에 가깝다. python: binary, , hexa. 우리는 흔...

•⏱ 약 4분 소요•
#python#python-basic#hexagonal#number
읽어보기→
#448

Np.random.seed()는 정확히 무엇을 의미하는가?

2-line summary 를 사용해서 난수(random number)가 발생하는 동작을 제어하지만, 난수를 생성하게 되는 624개의 모수 세트의 첫번째 값을 변경해줄 뿐임. 좀더 세밀하게 random성을 제어하고 싶을 경우, 로 특정한 상황의 ...

•⏱ 약 9분 소요•
#python#python-libs#numpy#random
읽어보기→
#449

NetworkX: equivalent random network.

3-line summary. "어떤 네트워크가 어떠한 성질을 가진다"는 것을 증명하기 위해서는 보통 비슷한 성질을 가지는, random network를 reference로 삼는다. graph의 small-worldness를 측정하기 위해서는 'e...

•⏱ 약 12분 소요•
#python#python-libs#networkx#random-network
읽어보기→
#450

NetworkX: equivalent lattice network.

3-line summary small-world network는 "높은 clustering", "짧은 average shortest path lenght"를 가진다. 따라서, lattice network(highly clustered, long ...

•⏱ 약 16분 소요•
#python#python-libs#networkx#random-network
읽어보기→
#451

NetworkX: graph generator - triangular lattice

1-line summary. "lattice network"는 삼각형/사각형/육각형 등으로 벌집처럼 촘촘하게 만들어낸 네트워크 구조를 말합니다. 를 통해 간단하게 사용할 수 있습니다. lattice network. google에서 "lattice...

•⏱ 약 6분 소요•
#python#python-libs#networkx#lattice-network
읽어보기→
#452

NetworkX: k-core.

2-line summary 는 graph 에서 최소한 의 node degree를 가지는 subgraph를 말합니다. 그냥 순차적으로 k보다 node degree가 작은 node를 잘라나가면 찾을 수 있습니다(혹은 존재하지 않거나). what is...

•⏱ 약 4분 소요•
#python#python-libs#networkx#k-core
읽어보기→
#453

Network - small worldness evaluation - omega.

2-line summary. 는 equivalent random network와 equivalent lattice network라는 두 reference network를 기준으로 평균 최단거리, clustering을 각각 비교하여 균형을 맞추고 ...

•⏱ 약 6분 소요•
#python#python-libs#networkx#random-network
읽어보기→
#454

Network - small worldness evaluation - sigma.

2-line summary. 는 equivalent random network를 기준으로 clustering, 평균 최단거리를 비교하여, 만들어진 지표. 1.0이 넘으면 보통 small-world라고 하지만, 그래프의 크기가 충분히 커지면 유효하...

•⏱ 약 4분 소요•
#python#python-libs#networkx#random-network
읽어보기→
#455

NetworkX: core-number

2-line summary corenumber는 각 vertex가 속할 수 있는 가장 큰 k-core의 를 말함. 따라서, k-core를 찾아가면서, 속해 있으면 update하는 식으로 처리하면 됨. core-number core-number는 ...

•⏱ 약 3분 소요•
#python#python-libs#networkx#k-core
읽어보기→
#456

NetworkX: graph product - power

1-line summary 를 사용해서, power of graph를 만들 수 있다. power of graph k power of graph 는 마코브체인처럼, 노드들이 번만에 도달할 수 있으면, 서로 인접하다고 보는 것이죠. 물론, 그러함으로...

•⏱ 약 1분 소요•
#python#python-libs#networkx#graph-operator
읽어보기→
#457

NetworkX: k-crust.

1-line summary 는 "k-떨거지"라고 말해도 되는데, 기존 graph 에서, k-core를 제거한 subgraph를 말하죠. k-crust. 즉, 는 를 제거했을 때, 남는 complement graph라고 보셔도 됩니다. 다만, 에서...

•⏱ 약 2분 소요•
#python#python-libs#networkx#k-core
읽어보기→
#458

NetworkX: k-shell.

2-line summary 은 "core number를 로 가지는 node들의 subgraph, 그리고, (k+1)-core에 존재하지 않는 노드들을 말하죠" 사실, 별거 아닌것 같은데, 종종 complex network에서 node들의 계층적인...

•⏱ 약 3분 소요•
#python#python-libs#networkx#k-core
읽어보기→
#459

NetworkX: onion decomposition

2-line summary 은 "core number를 로 가지는 node들의 subgraph, 그리고, (k+1)-core에 존재하지 않는 노드들을 말하죠" 사실, 별거 아닌것 같은데, 종종 complex network에서 node들의 계층적인...

•⏱ 약 6분 소요•
#python#python-libs#networkx#k-core
읽어보기→
#460

NetworkX: unary operator - complement and reverse

2-line summary graph 의 complement 는 "+ = complemet graph"라고 생각하면 됨. Directed graph 의 는 방향성을 반대로 하는 것을 말함( ==> ) complement of graph 의 com...

•⏱ 약 2분 소요•
#python#python-libs#networkx#graph-operator
읽어보기→
#461

NetworkX: binary operator

1-line summary graph binary operator, 즉, 그래프에 대한 덧셈 뺄셉을 정리했습니다. 사실, 집합 개념과 동일해요. graph binary operator Graph에 대해서 적용할 수 있는 operator들, 즉, ...

•⏱ 약 9분 소요•
#python#python-libs#networkx#graph-operator
읽어보기→
#462

G.has_edge는 v in G[u]보다 빠른가?

2-line summary graph 의 node간 연결성을 체크하는 방법중에서 가 보다 2배 이상 빠름. 물론, 를 사용하면, 더 빨라지지만, 위험성이 있으므로 가급적 하지 않는 것을 추천. 는 보다 빠른가? 저는 보통 node들의 연결성(ed...

•⏱ 약 6분 소요•
#python#python-libs#networkx
읽어보기→
#463

NetworkX: node classification - local and global consistency.

2-line summary 이전에 언급했던, harmonic function과 유사합니다만, localness(가까운 이웃들과의 관계), globalness(네트워크 전체를 봤을때, 지역적인 구분)에 대한 관점을 를 통해 결정할 수 있따, 라는 ...

•⏱ 약 18분 소요•
#python#python-libs#networkx#node-clasification
읽어보기→
#464

Scipy - sparse matrix.

What is sparse matrix? Sparse matrix는 한국말로 "희소행렬"이라고 할 수 있으며, 대부분이 비어 있는 행렬(matrix)라고 생각하시면 됩니다. 예를 들어 보겠습니다. 우리에게 행이 100, 열이 100개인 matri...

•⏱ 약 6분 소요•
#python#python-libs#scipy#sparse-matrix
읽어보기→
#465

NetworkX: swap - double edge swap

1-line summary Before: (u, v) and (x, y) AFter : (u, x) and (v, y) network - double edge swap network의 유형, 특성들을 판단하는 지표들의 유효함을 보이기 위해서는 보...

•⏱ 약 3분 소요•
#python#python-libs#networkx#swap
읽어보기→
#466

NetworkX: multigraph to graph.

2-line summary 를 그냥 으로 변환해주면 weight를 고려하지 못한다는 문제가 있음. 따라서, weight를 고려하여 를 만들어주는 함수를 정의. MultiGraph to Graph MultiGraph는 보통 노드 에서 노드 로 가는...

•⏱ 약 5분 소요•
#python#python-libs#networkx#multigraph
읽어보기→
#467

Network의 변화과정을 plt.animation으로 영상으로 만들자.

2-line summary. 를 사용해서 figure에 연속해서 그려지는 그림을 animation으로 표현하는 방법을 정리하였습니다. : 에 "그리는 방법"을 정의하고, 로 매 그림마다 필요한 데이터는 iterator의 형식으로 넘겨줍니다. in...

•⏱ 약 20분 소요•
#python#python-libs#networkx#matplotlib
읽어보기→
#468

Python: dictioanry `==` operator recursive check?

1-line summary python dictionary에 대해서 operator는 "내부 요소를 재귀적으로 파고들어가며 완전히 같은지를 확인"한다. operator in python dictionary 보통, dictionary를 사용할 때,...

•⏱ 약 2분 소요•
#python#python-basic#operator#dictionary
읽어보기→
#469

NetworkX: Rich Club coefficient

3-line summary 는 "k-core에 대한 density 변화율"을 의미함. equivalent random network와 비교하여 normalization. 와 동일한 코드를 다른 형태로 만들어봄. What is Rich Club? ...

•⏱ 약 7분 소요•
#python-libs#python#networkx#rich-club
읽어보기→
#470

NetworkX: Bridges

network theory에서 bridge란, "해당 edge가 끊어지면, graph의 connected component가 증가하는 edge"를 말합니다. 즉, edge 가 끊어진다면, node , 는 어떠한 방법으로도 서로 도달할 수가 없는 ...

•⏱ 약 2분 소요•
#python#python-libs#networkx#bridge
읽어보기→
#471

NetworkX: voterank

2-line summary 알고리즘은, 가령 influencer들을 통해 네트워크를 최대한 많이 커버하려고 할 때, 서로 겹치지 않게 influencer들을 선택하려면 어떻게 하는 것이 제일 좋은가? 를 보여준 알고리즘. 그냥 "이웃들에게 반복적...

•⏱ 약 14분 소요•
#python#python-libs#networkx#centrality
읽어보기→
#472

NetworkX: closeness vitality

1-line summary closeness vitality Closeness vitality Closeness vitality는 번역하자면, "근접 생명력/필수"처럼 번역될텐데, 의미가 이상해지는 군요. 계산방법으로 보면, 이는 특정 노드가 해...

•⏱ 약 3분 소요•
#python#python-libs#networkx#topology
읽어보기→
#473

NetworkX: shortest path and length.

2-line summary shortest path with weight. 오늘 이야기할 것은 사실 좀 사소한 것일 수도 있습니다. 보통 를 이용해서 분석을 할 때, 를 고려하고 싶은 경우에는 의 형태로 argument를 넘겨줍니다. 보통 이렇게...

•⏱ 약 6분 소요•
#python#python-libs#networkx#shortest-path
읽어보기→
#474

NetworkX: Wiener index

Wienerindex Wiener index는 chemical graph theory에서 등장하는데, 하나의 chemical graph 내에 등장하는 모든 node pair간의 shortest-path-length의 합을 말합니다. 개념상, 복잡...

•⏱ 약 2분 소요•
#python#python-libs#networkx#topology
읽어보기→
#475

NetworkX: structural holes - constraint

4-line summary structural hole은 "그래프에서 구조적인 허점"을 말하며, 이 "구조적인 허점"에 존재하는 node들은 보통 서로 다른 클러스터의 중심에 위치하게 되므로 정보의 중개자로서 강한 이득을 얻게 된다는 것을 말합니...

•⏱ 약 20분 소요•
#python#python-libs#networkx#structural-holes
읽어보기→
#476

NetworkX: structural holes - effective-size

2-line summary effective-size는 "redundancy"를 중심 개념으로 "node u에서 v로 가는 중복된 path가 존재하는가"를 중심으로 값을 계산합니다. 특히, ego-network를 중심으로 star-graph와 가...

•⏱ 약 14분 소요•
#python#python-libs#networkx#structural-holes
읽어보기→
#477

NetworkX: simple paths

1-line summary 은 graph 에서 "source로부터 target까지 가지는 모든 중복없는 노드 traversal"을 리턴. allsimplepath. graph에서 path는 중복 없는 노드 traversal을 말합니다. 특정 시작...

•⏱ 약 8분 소요•
#python#python-libs#networkx#path
읽어보기→
#478

Generator와 recursion을 쓸 때는 yield from.

1-line summary generator 내에서 다시 generator를 가져오는 경우, 해당 generator로부터 모든 원소를 가져오고 싶을 때는 을 사용하자. python basic - generator generator는 그냥 "데이터...

•⏱ 약 4분 소요•
#python#python-basic#recursion#generator
읽어보기→
#479

Python의 default parameter는 가변적(mutable)이다.

2-line summary 이라고 해둔다고 해서 라는 parameter의 value가 함수 콜마다 로 초기화되는 것이 아니다. 저렇게 해두면 함수를 콜할 때마다 같은 object에 접근하게 됩니다. weird default parameter 예를...

•⏱ 약 4분 소요•
#python#python-basic#default-parameter
읽어보기→
#480

NetworkX: traversal - DFS, BFS

1-line summary network에 대해서 DFS(depth-first-search), BFS(Breadth-first-search)를 generator를 사용하여 구현함. DFS(Depth-First-Search) 네트워크를 깊이 중심으...

•⏱ 약 6분 소요•
#python#python-libs#networkx#dfs
읽어보기→
#481

NetworkX: chain - chain decomposition

1-line summary "chain decomposition"은 edge partition의 방법 중 하나로, DFS의 결과로 생성된 Tree를 고려하여, Tree에 속하지 않은 nontree edge을 순차적으로 읽으면서 만들 수 있는 cy...

•⏱ 약 7분 소요•
#python#python-libs#networkx#chain
읽어보기→
#482

Stack을 이용해서 recursion을 iteration으로 바꾸기.

1-line summary stack을 이용해서 recursion DFS를 iteration으로 변경해봄. Recursion 프로그래머의 성향에 따라서 다를 수 있지만, recursion이라는 직관적으로 문제를 풀 수 있는 방법을 알려줍니다. 뿐...

•⏱ 약 9분 소요•
#python#python-basic#stack#recursion
읽어보기→
#483

Nltk down ssl certificate failed.

failed nltk로부터 필요한 라이브러리들을 다음처럼 다운 받을 때, 문제가 생기는 경우가 있습니다. 이유는 모르겠지만, nltk로부터 다운받는 과정에서 뭔가 문제가 발생한 것이죠. 개념적으로는 경로 안에 필요한 라이브러리들을 이곳에서 다운 ...

•⏱ 약 2분 소요•
#python#python-libs#nltk
읽어보기→
#484

Pd.read_csv는 충분히 빠른가?

1-line summary 가 보다 더 빠른 것 같습니당. pd.readcsv is faster? 다른 라이브러리들도 있지만, csv를 읽을 때, 가 직관적이기도 하고 다른 관련 함수들도 많이 제공하기 때문에, 이 함수만 쓰고 있지만, 가끔, "...

•⏱ 약 4분 소요•
#python#python-libs#csv#pandas
읽어보기→
#485

Python에서 `ufeff`가 읽힐 때 해결방법.

1-line summary 을 쓰면 해결 됩니다. python에서 가 읽히는 문제. 보통 csv를 읽을 때, 를 쓰긴 하지만 속도 문제로 인해 라는 모듈을 사용할 때가 있습니다(사실 요즘은 웬만하면 가 더 빠르기는 하지만요). 이 때 csv를 읽...

•⏱ 약 4분 소요•
#python#python-basic#utf-8#string
읽어보기→
#486

Gensim - Core Tutorial - Core Concept

2-line summary gensim의 기본 개념인 Document, corpus, vector, model에 대해서 정리하였습니다. gensim은 "같은 document일지라도 corpus가 다르면 다른 형태로 vector화된다는 것"을 가정...

•⏱ 약 23분 소요•
#python#python-libs#gensim#nlp
읽어보기→
#487

Pd.concat이 df.append보다 빠릅니다.

1-line summary 이 보다 빠릅니다. pd.concat vs df.append 쓰고보니 매우 간단한 내용입니다만, 정리합니다. 는 dataframe으로 구성된 리스트들을 한번에 다 합쳐서 새로운 dataframe을 만들어주는 함수입니다....

•⏱ 약 4분 소요•
#python#python-libs#pandas#pd.dataframe
읽어보기→
#488

Python: logger - logging wisely.

1-line summary 그냥 를 쓰는 것도 좋지만, 를 사용해서 프로그램의 진행상황을 효과적으로 파악하면 더 좋을 것 같아요. 왜 logger를 써야 할까? 사실, 꼭 쓸 필요는 없습니다. 대다수의 경우 로도 충분합니다만, 프로그램의 규모가 ...

•⏱ 약 7분 소요•
#python#python-libs#logger#exception
읽어보기→
#490

Gensim - tutorial - word2vec - basic

1-line summary 을 이용하여 word2vec 모델을 구현하고, 학습시켜서 유용하게 쓰는 방법에 대하여 정리하였습니다. gensim - tutorial - word2vec word2vec은 이미 매우 유명한 머신러닝 알고리즘이죠. 사실 ...

•⏱ 약 20분 소요•
#python#python-libs#gensim#similairty
읽어보기→
#491

Gensim - tutorial - word2vec - GoogleNews

2-line summary google이 이미 word2vec의 결과로 각 word에 대한 vector를 만들어서 배포하였습니다. 하지만 용량이 커서 작은 용량에서는 어렵죠. 그래서 작은 용량의 word2vec vector로 존재합니다. vect...

•⏱ 약 19분 소요•
#python#python-libs#gensim#similairty
읽어보기→
#492

Gensim - tutorial - doc2vec

2-line summary Doc2vec는 각 Document를 vector로 표현하는 모델입니다. input을 word2vec으로 넣고, output을 각 document에 대한 vector를 설정하여 꾸준히 parameter를 fitting합...

•⏱ 약 9분 소요•
#python#python-libs#gensim#similairty
읽어보기→
#493

Python에서 string 내 space 가 없어지지 않을때(non-breaking-space)

왜 했는데 공백이 남아있지? 요즘 일이 있어서 간단하게 string을 처리하고 있습니다. 특히, 오늘은 pdf로부터 텍스트 데이터를 읽어서, 텍스트를 전처리해야 하는 일이 있었죠. 일단 아주 간단하게, 을 사용해서 공백을 삭제했는데, 공백이 안 ...

•⏱ 약 2분 소요•
#python#python-basic#string#space
읽어보기→
#495

Python에서 textRank 만들기.

3-line summary textRank는 pagerank를 text에 접목시킨 것이다. 이 때 사용하는 Graph는 word를 node로 하여 문장 내 공동출현 값을 edge의 weight로 주는 경우가 있고 혹은 sentence를 node로...

•⏱ 약 13분 소요•
#python#python-libs#pagerank#networkx
읽어보기→
#496

Gensim - tutorial - Doc2Vec - TaggedDocuments

3-line summary gensim에서 Doc2vec을 학습하기 위해서는 각 문서들을 의 형태로 표현하고 학습함. 이 때 는 반드시 unique documentID이어야 하는 것은 아니며, 인스타그램 태그처럼 여러 개를 동시에 넣을 수도 있습...

•⏱ 약 12분 소요•
#python#python-libs#gensim#similairty
읽어보기→
#497

Gensim - tutorial - fastText

2-line summary word2vec의 경우, 존재하지 않는 word(vocab에 등록되지 않은 word)에 대해서는 vector로 표현해주지 못합니다. 반면 fastText의 경우는, word와 word간의 형태적 유사성을 고려함으로써, ...

•⏱ 약 21분 소요•
#python#python-libs#gensim#similairty
읽어보기→
#498

Gensim - reproducible training - fix seed

2-line summary gensim은 word vector를 초기화할 때, seed 값을 이용하며, 하나의 코드 실행 내에서 seed륿 변경하지 않는 한, 값은 동일하게 설정된다. 하지만, 서로 다른 코드 실행에서는 초기 값이 달라질 수 있으...

•⏱ 약 8분 소요•
#python#python-libs#gensim#word2vec
읽어보기→
#499

음수와 양수는 binary로 각각 어떻게 표현되는가?

intro 사실, 우리는 10진법의 세상에 살고 있지만, 컴퓨터는 2진법의 세상에 살고 있습니다. 물론, 우리가 변수를 선언 및 정의할 때 이진법을 사용하지는 않지만, 컴퓨터는 이진법으로 계산을 처리하죠. 오늘 이야기할 부분은 몰라도 되지만, 재...

•⏱ 약 4분 소요•
#python#python-basic#binary#numpy
읽어보기→
#500

Nltk - corpus - stopwords

2-line summary stopwords는 보통 "너무 빈번하게 나와서 아무 정도가 없는 'a'와 같은 단어들"을 말합니다. 그리고,에 이미 정의되어 있죠. stopwords and nltk.stopwords 자연어처리를 할때, 너무 빈번하게...

•⏱ 약 7분 소요•
#python#python-libs#nltk#stopwords
읽어보기→
#501

Python: strip string better with punctuation

1-line summary 보통 이라고 쓰지만, 여기에 parameter를 넘겨주면 넘어간 리스트의 모든 원소를 지워준다. strip better 사소합니다만, 보통 문자열의 양쪽 공백을 지워줄 때 다음과 같이 처리하죠. 이게 다 인줄 알았는데,...

•⏱ 약 2분 소요•
#python#python-basic#string#punctuaion
읽어보기→
#502

Gensim - model - Phrases

2-line summary 는 텍스트에서 빈번하게 등장하는 bi-gram을 발견해주는 모델입니다. 만약, 2개의 word-token만 붙이는 것이 아니라, 여러 word들을 이어 붙이고 싶다면, 을 반복하여 새로운 모델을 만들어줘야 합니다. Bi...

•⏱ 약 16분 소요•
#python#python-libs#gensim#phrases
읽어보기→
#503

Python: byte string, literal string.

intro 가끔 python으로 문자열을 처리하다 보면 앞에 라는 문자 하나가 붙는 것을 볼 수 있습니다. 출력은 문제없이 되니까, 그냥 써도 문제가 없을 때가 있지만, 에러가 발생한다거나, string간의 비교를 정확하게 못해줄때가 있죠. py...

•⏱ 약 7분 소요•
#python#python-basic#string#ascii
읽어보기→
#505

Python에서 한글과 영어를 줄 맞춰서 예쁘게 출력하자.

python에서 한글과 영어를 함께 출력할 때, 줄이 안 맞습니다 간단한 코드를 보여드리겠습니다. 종종, 한글과 영어가 혼재되어 있는 결과들을 칼럼별로 다음처럼 출력할 때가 있죠. 하지만, 결과를 보면 마음같지 않습니다. 분명히, 를 사용하였으니...

•⏱ 약 4분 소요•
#python#python-basic#unicode#python-libs
읽어보기→
#506

NetworkX: MultiGraph

networkx.multigraph 사용하기. 의 경우 network(Graph)를 방향성(directionality), 다중-Edge-가능여부에 따라 총 4가지로 구분하죠. nx.Graph() : 방향성이 없고, node간에 하나의 edge만 ...

•⏱ 약 7분 소요•
#python#python-libs#networkx#multigraph
읽어보기→
#507

NetworkX: centrality with weight

network에서 centrality를 계산할 때, 기본적으로는 edge의 weight를 모두 1로 가정합니다. 이럴 때는 상관없지만, weight 값에 따라서, centrality가 달라질 때, 그냥 아무 생각없이 weight를 그대로 넘겨주지...

•⏱ 약 6분 소요•
#python#python-libs#networkx#centrality
읽어보기→
#508

NetworkX: Don't use subgraph too much

networkx - Subgraph. networkx에서 어떤 현상을 Graph로 모델링한 다음, 어떤 부분만 특정하게 보고 싶을 때가 있습니다. 가령, "특정 노드들"만 포함되거나, "특정 Edge들"만 포함되거나, 하는 식으로 보고 싶을 때가...

•⏱ 약 6분 소요•
#python#python-libs#networkx#centrality
읽어보기→
#509

NetworkX: incremental_closeness_centrality

networkx - closeness centrality network에서 closeness centrality는 "노드 u에서 다른 모든 노드들까지의 거리의 합의 역수"를 말합니다. 즉, closeness centrality가 높으면, 다른 모...

•⏱ 약 10분 소요•
#python#python-libs#networkx#centrality
읽어보기→
#510

Selenium - headless firefox

selenium with headless selenium은 python을 이용해서 웹브라우저를 컨트롤하는 라이브러리입니다. 즉, 웹에서 필요한 정보들을 비교적 자유롭게 크롤링해서 가져올 수 있다는 장점이 있죠. 다만, 그냥 selenium을 실행...

•⏱ 약 1분 소요•
#python#selenium#python-libs#firefox
읽어보기→
#511

Selenium - select button

selenium으로 웹브라우저를 조종하면서, 그 과정에서 웹페이지를 크롤링해올 때, "10개씩 보기", "20개씩 보기", "50개씩 보기", "100개씩 보기"와 같은 버튼을 볼 때가 있습니다. 당연히 이럴 때면, "100개씩 보기"를 눌러서,...

•⏱ 약 1분 소요•
#python#selenium#python-libs#firefox
읽어보기→
#512

NetworkX: centrality with wrong weight name.

networkx - centrality with weight network에서 중요한 Node를 추출하기 위하여, centrality를 분석합니다. 보통은 Network 상에서 node간의 거리를 활용하여 이 centrality를 계산하게 되죠....

•⏱ 약 9분 소요•
#python#python-libs#networkx#centrality
읽어보기→
#513

NetworkX: weighted centrality with lambda function

networkx - centrality with weight 어떤 대상/현상을 네트워크로 모델링한 뒤, 보통 "그래서 가장 중요한 Node/Edge가 무엇인가?"를 찾는 작업을 많이 합니다. 이 작업을 보통 Centrality 분석 이라고 하죠....

•⏱ 약 7분 소요•
#python#python-libs#networkx#centrality
읽어보기→
#514

Networkx에서 MultiGraph에 대해 Centrality 계산하기.

networkx - MultiGraph에 대해서 Centrality 계산하기 networkx에서는 Graph를 총 4가지 방법으로 표현할 수 있습니다. 방향성(Directionality) 그리고 Multiple-Edge에 따라서 2개로 나누어 ,...

•⏱ 약 8분 소요•
#python#python-basic#python-libs#centrality
읽어보기→
#515

한국 힙합씬 피쳐링 네트워크 분석 - 1 ~ 3편.

저는 대상/현상을 네트워크로 모델링하고 네트워크 적인 분석 법을 사용하여 대상 네트워크를 분석하는 일을 주로 수행합니다. 그리고, 그러다보니, 세상의 많은 현상들을 결국 "네트워크"적으로 바라보게 되죠. 동시에 저는, 한국 힙합의 오랜 팬이기도 ...

•⏱ 약 2분 소요•
#python#python-libs#selenium#data-crawling
읽어보기→
#516

한국 힙합씬 피쳐링 네트워크 분석 - 1편 - Data Collection

한국 힙합씬 피쳐링 네트워크 분석. 저는 대상/현상을 네트워크로 모델링하고 네트워크 적인 분석 법을 사용하여 대상 네트워크를 분석하는 일을 주로 수행합니다. 그리고, 그러다보니, 세상의 많은 현상들을 결국 "네트워크"적으로 바라보게 되죠. 동시에...

•⏱ 약 17분 소요•
#python#python-libs#selenium#data-crawling
읽어보기→
#517

한국 힙합씬 피쳐링 네트워크 분석 - 2편 - Data Collection Wisely

한국 힙합씬 피쳐링 네트워크 분석. 저는 대상/현상을 네트워크로 모델링하고 네트워크 적인 분석 법을 사용하여 대상 네트워크를 분석하는 일을 주로 수행합니다. 그리고, 그러다보니, 세상의 많은 현상들을 결국 "네트워크"적으로 바라보게 되죠. 동시에...

•⏱ 약 21분 소요•
#python#python-libs#selenium#data-crawling
읽어보기→
#518

한국 힙합씬 피쳐링 네트워크 분석 - 3편 - Data Analysis

한국 힙합씬 피쳐링 네트워크 분석. 저는 대상/현상을 네트워크로 모델링하고 네트워크 적인 분석 법을 사용하여 대상 네트워크를 분석하는 일을 주로 수행합니다. 그리고, 그러다보니, 세상의 많은 현상들을 결국 "네트워크"적으로 바라보게 되죠. 동시에...

•⏱ 약 47분 소요•
#python#python-libs#selenium#data-crawling
읽어보기→
#519

Gensim - Tutorial - Word Mover Distance(WMD)

Intro. Word Mover's Distance(WMD)는 "사용자가 제출한 query에 대해서 가장 관련있는(relevant) 문서들을 줄수 있도록 해주는, 머신러닝 분야의 유망한 기술"입니다. 이 tutorial에서는 두 document에...

•⏱ 약 11분 소요•
#python#python-libs#gensim#pyemd
읽어보기→
#520

Earth Mover Distance(EMD) and pyemd

Earth Mover Distance(EMD) Earth Mover Distance(EMD)는 "확률 분포 A를 확률 분포 B로 변환할때 필요한 일의 양"을 의미합니다. 여기서는 확률 분포라고 general하게 말하였지만, 간단하게는 그냥 "하나...

•⏱ 약 8분 소요•
#python#python-libs#gensim#pyemd
읽어보기→
#521

FastText에 document를 학습시킬 때, itertools.cycle 사용하기.

Intro 요즘 저는 FastText를 이용해서 단어의 의미를 학습시키고 있습니다. word2vec도 doc2vec도 있습니다만, fasttext의 경우는 vocabulary에 없는 단어들이라도 형태적인 유사성을 고려해서, 의미를 파악할 수 있다...

•⏱ 약 5분 소요•
#python#python-libs#fasttext#itertools
읽어보기→
#522

Gensim - tutorial

Intro. 요즘은 자연어처리를 사용하여 논문을 써야 합니다. 주로, 전처리 쪽을 담당하고 있기는 하지만요. 주로 을 사용하고 있으며, Gensim - Documentation에 있는 내용들을 공부하여 다음과 같이 정리하였습니다. 작성 시간 순....

•⏱ 약 2분 소요•
#python#python-libs
읽어보기→
#524

Gensim - tutorial - fastText 2편

나의 목적은 결국 "composite word"를 이해할 수 있도록 학습을 시키는 것을 말함. 여기서는, 그렇다면 fastText를 학습시킬때, 2-line summary word2vec의 경우, 존재하지 않는 word(vocab에 등록되지 않은...

•⏱ 약 21분 소요•
#python#python-libs#gensim#similairty
읽어보기→
#525

Networkx에서 node 합치기(MERGE node)

Intro node의 uniqueness가 보장되지 않은 network를 대상으로 network 분석을 수행하고 있습니다. node의 uniqueness가 보장되지 않았다는 말은, "현재의 network에서 서로 다르게 표현된 두 node가 정말...

•⏱ 약 5분 소요•
#python#python-libs#networkx
읽어보기→
#526

Gensim - tutorial - doc2vec with trained word2vec

2-line summary intro 지금까지 저는 word2vec도 공부했고, doc2vec도 공부했습니다. 그리고, doc2vec은 word2vec과 연결되어 있죠. 우선 간단하게 지금까지 공부한 것들을 복습해보겠습니다. AGAIN: word...

•⏱ 약 3분 소요•
#python#python-libs#gensim#similairty
읽어보기→
#527

Sklearn - semi supervised learning

Intro: What is semi-supervised learning semi-supervised learning은 "비교적 적은 양의 label data로부터, labeling되어 있지 않은 unlabeld data에 대해서 label을 붙이...

•⏱ 약 6분 소요•
#python#python-libs#sklearn#semi-supervised-learning
읽어보기→
#528

Python: TypeError - Object of type 'int64' is not JSON serializable

Intro python으로 코딩을 하다가, 를 사용해서 뭘 좀 처리하고(보통은 ML 모델에 넘기죠), 이 결과를 json 파일로 저장하려고 할 때 다음과 같은 오류가 뜰 때가 있습니다. 대충 "Type"이 문제고, int64의 변수 타입은 jso...

•⏱ 약 3분 소요•
#python#python-libs#json#numpy
읽어보기→
#529

Python: Dictionary - 깊숙하게 합치자.

Intro python으로 코딩하면서, 가장 많이 사용하는 아이가 바로 dictionary입니다. 필요에 따라서 그냥 set operation처럼 쓸 수도 있고, json으로 serialization하기도 편하고 다양한 편리함을 갖추고 있죠 UP...

•⏱ 약 4분 소요•
#python#dictionary#python-basic
읽어보기→
#530

Python: Selenium - Extract meta info.

Intro 우리가 보는 웹페이지는 크게 head, body로 구성되어 있죠. 그리고 head에는 로 작성된 아이들이 있는데, 보통 meta-data라고 무릅니다. meta-data는 "데이터에 대한 데이터"라고 생각하시면 됩니다. 많은 경우, 우...

•⏱ 약 2분 소요•
#python#python-libs#seleinum
읽어보기→
#531

Python: sklearn - warm_start.

2-line summary 에서 model의 의 default는 임. 이는 을 실행할 때, 이전에 업데이트된 weight(coefficient)를 초기화하고 다시 fitting한다는 것을 의미한다. 만약 를 True로 설정하고 진행한다면, 을 실...

•⏱ 약 5분 소요•
#python#python-libs#sklearn
읽어보기→
#532

Python: generator/iterator - Merge.

Intro 코딩을 하다가, 대용량의 데이터를 가져올 때, 용량이 너무 커서 램에 한번에 올리기가 어려운 경우, generator/iterator를 사용하는 경우들이 있죠(엄밀히 따지면 generator와 iterator는 다르지만 이 글에서는 차...

•⏱ 약 3분 소요•
#python#python-basic#python-libs#itertools
읽어보기→
#534

Python: sklearn - fit, partial_fit

2-line summary 은 여러 weight fitting을 까지 수행하는 경우를 말하고, 은 딱 1번의 iteration만을 진행하는 것을 말한다. 따라서, 만약 'converge'하지 않는다는 조건 하에서, parameter 를 10으로 ...

•⏱ 약 4분 소요•
#python#python-libs#sklearn
읽어보기→
#535

Python: sklearn - Probability Calibration

Intro 이 글의 내용을 정리하고 번역하였습니다. Calibration of Predictions 흔히들 Calibration은 "실제 현상에서의 빈도"와 "예측 모델을 통해 예측된 확률값"이 같은 정도를 말한다고 보시면 됩니다. (기본적으로는...

•⏱ 약 12분 소요•
#python#python-libs#sklearn
읽어보기→
#536

Macbook_air 2020년형을 샀습니다.

Intro 맥북을 새로 샀습니다. 설정들을 하나씩 해주는데, 아무래도 귀찮으니까 하는 김에 다 정리해두려고 합니다. First macbook byebye 제가 처음으로 산 애플 제품이 바로 맥북(2015년 형 Early)였습니다. 너무 예전이라서...

•⏱ 약 14분 소요•
#macbook#macbook_air#vscode#macos
읽어보기→
#537

VScode에서 flake8 특정, rule 제외하기

Intro VScode를 IDE로 사용하고, python lint로는 flake8를 사용하고 있습니다. 전반적으로 좋은데, 몇가지 설정을 고치고 싶어서, 그 방법을 정리합니다. flake8 in terminal 은 커맨드라인에서 돌아가는 명령어로...

•⏱ 약 2분 소요•
#vscode#flake8#python#python-lint
읽어보기→
#539

FastText, 학습된 모델과 벡터 가져와서 사용하기

Intro fasttext는 2017년 당시에 유행했던 방법론이며, word2vec이 Out-Of-Vocabulary 문제를 해결해주지 못하는 반면, fasttext의 경우는 word과 word간의 형태적 유사성을 n-gram의 단위에서 고려함으...

•⏱ 약 16분 소요•
#nlp#fasttext#gensim#python
읽어보기→
#540

Python: F632 - string은 == 로 비교하세요!

2-line summary python은 string에 대해서 object interning의 방식으로 관리를 한다. 이는, 메모리의 효율적인 관리를 위해 같은 문자열을 중복으로 메모리 공간에 확보하지 않으려는 기법이다. 는 identity te...

•⏱ 약 7분 소요•
#python#string#python-basic#flake8
읽어보기→
#541

Python: E712 - Comparison to true should be 'if cond is true:

는 를 사용해서 비교할 것 python 코드 내에서 True를 비교할 때는 다음의 코드를 써야 합니다. C에서는 True, False라는 것이 정확하게 존재하지 않고, 그냥 이면 False, 이면 True로 생각해서 처리했죠. 그렇게 해도 문제는...

•⏱ 약 2분 소요•
#python#python-basic#flake8
읽어보기→
#542

Python: Object Interning

Intro - 같은 Object는 여러 번 생성하지 말자 다음의 파이썬 코드를 봅니다. 분명 서로 다른 변수이므로 다른 메모리 공간에 존재해야 하는데, 같은 메모리 공간을 가지고 있는 것을 알 수 있죠. 이게, 본 글을 쓰게 된 이유입니다. 왜 ...

•⏱ 약 6분 소요•
#python#python-basic#interning
읽어보기→
#543

Python: lambda 함수와 def 함수의 차이

Intro - lambda 함수와 def 함수는 무엇이 다른가 python에서 함수를 정의하는 방법은 2가지 입니다. 식을 이용해서 변수에 assign해준다거나, 아니면 구문을 이용해서 만들어준다거나 하는 방식이죠. 이것이 lambda 식을 이용...

•⏱ 약 4분 소요•
#python#python-basic#lambda#def
읽어보기→
#544

Python: flake8 - e731 - Do not assign a lambda expression, use a def

Intro - lambda function을 assign하지 말아라 다음과 같은 매우 간단한 코드가 있습니다. lambda 함수를 변수에 할당해서 사용하죠. 언뜻 보기에는 특별한 문제가 없는 것처럼 보이지만, 아래와 같이 코드를 사용할 경우 fl...

•⏱ 약 5분 소요•
#python#python-basic#flake8#lambda
읽어보기→
#545

Python에서 enum을 어떻게 쓸 수 있는가?

what is enum? C로 프로그래밍을 입문하신 분들은 을 한번쯤은 사용해보신 적이 있을 것 같습니다. 물론, 이게 딱히 시험에 나오는 놈도 아니고 하니까, 굳이 기억해두지 않기는 해요. 별로 필요하지 않기도 하고요. 하지만, 을 쓰면 코딩할...

•⏱ 약 3분 소요•
#python-libs#python#python-basic#enumeration
읽어보기→
#546

Python: datetime.datetime

datetime.datetime 은 날짜를 나타내는 과 시각을 나타내는 을 모두 가지는 class입니다. 가장 범용적으로 많이 쓰이는, class죠. now or today 현재의 시각을 알고 싶을 때는 나 를 사용합니다. 는 "협정세계시"를 의...

•⏱ 약 4분 소요•
#python#python-libs#datetime
읽어보기→
#547

Python: datetime.time

datetime.time class는 그저, '시간'만을 표시하는 class입니다. 날짜나 요일등은 전혀 중요하지 않고 그냥 시간만이 중요할 때 쓰는 class죠. 다음 코드에서와 같이, time object을 정의하고 사용할 수 있습니다. 또한...

•⏱ 약 3분 소요•
#python#python-libs#datetime
읽어보기→
#548

Functools - partial

은 다양한 argument를 가지는 함수에 대해서, 특정한 argument를 제한하여, 좁은 기능의 function을 리턴해주는 함수를 말합니다. 가령, 라는 함수가 있을 때, a의 값을 특정 값으로 고정하고, b, c만 input으로 받아들이는...

•⏱ 약 2분 소요•
#python#python-libs#functools#functional-programming
읽어보기→
#549

Functools - reduce

는 원래 python2에는 built-in으로 있었으나, 지금은 없어진 함수입니다. 동작하는 방식이 약간 특이한데, 만약 우리에게 라는 리스트가 있다면, A와 B에 대해서 특정 연산을 해주고, 그 결과를 다시 C와 해주고, 이런 식으로 연쇄적으로...

•⏱ 약 2분 소요•
#python#python-libs#functools#functional-programming
읽어보기→
#550

Functools.partial

복잡한 함수를 간단한 함수로 변환해주는 function - ex: 다른 방법으로 를 이용해서 정의할 수 도 있다. - : 함수 안에 nested-함수를 정의하고, 이 nested-함수를 함수 내에서 리턴하면, 해당 nested-함수는 함수 외부에...

•⏱ 약 4분 소요•
#python#python-libs
읽어보기→
#554

Python에서도 multiprocessing을 사용해야 하는 이유

Intro - multiprocessing.cpucount 값이 이상한데? 최근에 간단하게나마 병렬프로그래밍을 공부하고 있습니다. 라이브러리를 사용해서, 간단하게 좀 건드려보고 있는데, 간단하게 아래의 코드를 실행해본 결과 제 CPU의 수가 8개...

•⏱ 약 11분 소요•
#python#multiprocessing#hyperthreading#cpu
읽어보기→
#555

Python Multiprocessing - CPU Core와 하이퍼스레딩

Issue 그럼, 엄밀히 따지면 프로세서가 아니라 "스레더"인 셈 아닌가. 하이퍼스레딩은 일부러 하나의 물리적 프로세스가 멀티스레딩이 가능하도록 함으로써, 논리적으로 프로세서의 수를 뻥튀기 한 것에 가까움. 멀티프로세싱과 멀티스레딩은 다르다. 그...

•⏱ 약 13분 소요•
#python
읽어보기→
#556

List 내 모든 역순(inversion) 수 찾기

List 내 Inversion 개수 찾기 Array 혹은 List가 있을 때, 현재의 상태를 Sorted와 비교하여 얼마나 차이가 있는지 확인하려면, 현재 순서가 반대로 되어 있는 pair들이 얼마나 있는지 확인하면 되겠죠. 이렇게 역순으로 되어...

•⏱ 약 7분 소요•
#algorithms#mergesort#python#bubblesort
읽어보기→
#557

Python: self referencing list

이상한 짓을 합니다. - 비어 있는 list 를 만들고요. - reference variable 가 를 지칭하도록 합니다. - 그리고 안에 를 넣어줍니다. 좀 이상하지 않나 싶지만, 오류 없이 잘 돌아갑니다. 그냥 print해서 안에 있는 값을 ...

•⏱ 약 2분 소요•
#python#python-libs#data-struture#list
읽어보기→
#558

DuckTyping - Example with python

Duck Typing "어떤 것이 오리(Duck)인지는 그의 행동을 통해 판단해야 한다"라는 개념이 바로 Duck Typing입니다. 달리 말하면, "처음부터 Type이 정해진 것이 아니라, "오리로서 갖춰야 하는 method들이 구현되어 있으면...

•⏱ 약 7분 소요•
#python#oop#ducktyping#programming
읽어보기→
#559

PyCharm - Disable typo in Comment

typo "typographical Error"의 약자로 "오탈자"를 말한다고 보시면 됩니다. 많은 IDE에서 기본적으로 typo에 대해서 알림고치라고 말해주기는 하는데, Comment에 대해서도 고치라고 말합니다. 가령 위 코드에서 부분을 고리...

•⏱ 약 1분 소요•
#python#pycharm#ide#typo
읽어보기→
#560

PyCharm - Install PyCharm

PyCharm - Why Install PyCharm 기존에는 VScode를 사용해서 python 개발을 진행했습니다. 사실 그동안 큰 불편함없이 개발을 해오기는 했는데요, 굳이 PyCharm을 설치하기로 한 이유는 대략 다음과 같습니다. - J...

•⏱ 약 3분 소요•
#python#pycharm#ide
읽어보기→
#561

Python Basic - Don't make Mutable Argument

다음과 같이, list에 새로운 원소를 넣어주는 함수가 있습니다. 뭐, 아무 문제가 없죠. 그런데, 우리가 조금 깔끔하게 하려고 함수 를 다음과 같이 변경했다고 해봅시다. default argument를 정해주는 것이죠. 에 아무 값도 전달받지 ...

•⏱ 약 5분 소요•
#python#python-basic#argument
읽어보기→
#562

Python: dictionary - setdefault

python에서 dictionary는 매우 유용한 자료구조이기는 한데, 가 dictionary에 존재하지 않는 경우를 고려해야 해서 꽤 귀찮죠. 가령, 에 있는 원소들의 빈도를 센다고 하면 다음과 같이 코딩해야 합니다. 별것 아닌데 꽤 귀찮죠. ...

•⏱ 약 1분 소요•
#python#dictionary#python-programming#python-basic
읽어보기→
#563

Python basic - super()

function은 보통 상속(Inheritance)에서 상위 class의 method에 접근할 때 사용합니다. 가령 다음과 같이 간단한 class의 method를 사용할 수 있죠. 보통, 이렇게 간단하게 '바로 위의 부모 class'에 접근하기 ...

•⏱ 약 6분 소요•
#python#oop#super#inheritance
읽어보기→
#564

Python: collections - deque가 list보다 항상 빠른가?

python - collections - deque나 list보다 빠를까? 결론부터 말하자면, Queue로 쓰이는 경우에만 가 보다 빠릅니다. 일단 deque는 list처럼 와 같이 index에 따른 접근이 불가하기 때문에, 중간에 있는 값에 접...

•⏱ 약 7분 소요•
#python#python-libs#collections#deque
읽어보기→
#565

Python: OOP - multiple Inheritance

python - multiple Inheritance python에서는 multiple inheritance(다중 상속)이 가능합니다. 다중 상속은 말 그대로 "2개 이상의 class를 상속받는 것"을 말하죠. 다음 코드에서 class 는 Cla...

•⏱ 약 7분 소요•
#python#oop#inheritance
읽어보기→
#566

Python: OOP - ABC(Abstract Base Class)

ABC(Abstract Base Class)는 "구현되지 않고, 선언만 되어 있는 method가 포함된 class"를 말합니다. 구현되어 있지 않고 선언만 되어 있다는 것은, 이 ABC를 상속받은 Child Class에서 해당 method를 정의...

•⏱ 약 3분 소요•
#python#python_basic#class#oop
읽어보기→
#567

Python: OOP - new, init, repr, str

python class 정의시 다음 4가지 method를 설명합니다. - : 보통 을 생성자라고 알고 있지만, 사실 메모리를 확보해주는 진짜 생성자는 입니다. 아래 코드에서는 이 부분에서 생성될 수 있는 Object의 개수를 제한하고, 추가로 생...

•⏱ 약 3분 소요•
#python#python_basic#class#oop
읽어보기→
#568

Python: package and import

python으로 개발을 길게 하는 일이 종종 있는데, 귀찮아서 그냥 한 파일 내에 모든 함수를 우겨넣고 진행하는 경우들이 많습니다. 뛰어난 개발자라면 어떤 짓을 해도 문제가 없습니다만, 보통의 사람들은 모두 그렇지 않고요, 그냥 저렇게 해버리면 ...

•⏱ 약 8분 소요•
#python#import#python-basic#package
읽어보기→
#569

Python: class - Math method

python에서 class의 기본 연산자를 지원하는 method를 정의합니다. 테스트해보면 잘 되는 것을 알 수 있습니다.

•⏱ 약 5분 소요•
#python#python-basic#oop#math
읽어보기→
#570

PyPDF2 - Merge pdf files

python을 이용해서 여러 pdf 파일을 하나로 합쳐보려고 합니다. 코딩이 아니라, 다른 방식으로 하려면 타 서비스를 사용해야 하는데, 이 서비스에서 pdf를 갈취하는 것은 아닌지 확신이 들지 않더라고요. 특히 pdf에는 민감한 자료들이 있는 ...

•⏱ 약 3분 소요•
#python#pypdf2#pdf
읽어보기→
#571

Pillow - png를 ico로 변환

일단 Pillow를 설치합니다. 그리고 다음 코드를 실행하면, 변환해줍니다. pip를 통해 설치한 건 이지만, import할때는 을 사용합니다.

•⏱ 약 1분 소요•
#python#pillow#png#ico
읽어보기→
#572

Moran's Index python으로 계산하기

Global Moran' I Moran's Index는 특정 구역 혹은 관계들 속에 군집이 존재하는지를 통계적으로 검정하는 방법입니다. Null Hypothesis: "군집이 존재하지 않는다", 즉, 모든 구역이 Randomness를 가진다는 것...

•⏱ 약 13분 소요•
#python#hypothesistesting#scipy#autocorrelation
읽어보기→
#573

Python: Cumulative normal distribution

python에서 누적 정규 분포 함수(CDF, Cumulative normal Distribution Function)을 계산하는 방법을 정리했습니다. 를 이용하면 다음과 같습니다. 를 사용하지 않고 직접 만들어서 처리하는 경우에는 다음과 같죠....

•⏱ 약 2분 소요•
#python#python-basic#scipy
읽어보기→
#574

Django: install

python - Django Django는 웹프로그래밍에서 가장 많이 사용되는 python 기반 프레임워크입니다. 저는 개인적으로 flask가 쉽게 뚝딱뚝딱 만들기 좋아하기는 하지만, flask는 유지보수 측면에서 좀 어려움이 있는 것 같아요. ...

•⏱ 약 4분 소요•
#python#programming#django#web
읽어보기→
#575

Django: Start Django Project

Django, Spring, ROR(Ruby On Rails)는 모두 MVC(Model - View - Controller)라는 패턴을 따릅니다. MVC는 특정 언어에 국한된 것이 아니라, 소프트웨어 설계적인 접근인데 각각 다음과 같은 의미를 가...

•⏱ 약 4분 소요•
#python#programming#django#web
읽어보기→
#576

Django: Run superbasic Server

MVC니 다 필요 없고 일단 server를 띄워보도록 하겠습니다. View - index.html view는 사용자에게 보여지는 문서를 말합니다. 그냥 html 문서라고 생각해도 문제가 없죠. 을 다음처럼 만들어 줍니다. Controller - ...

•⏱ 약 6분 소요•
#python#programming#django#web
읽어보기→
#577

Django: basic

사실 html 문서들은 서로 중복을 피해서 유지보수를 편하도록 하게 위해서 다양한 Template Langue들이 존재합니다. django는 Django Template Language(DTL)을 사용합니다. Passing parameter 백엔...

•⏱ 약 1분 소요•
#python#programming#django#web
읽어보기→
#578

Django: include html

html 문서 내에 다른 html 문서를 집어 넣을 수 있습니다. 가령 아래와 같은 를 다른 문서에 집어넣고 싶다고 하겠습니다. 이 때는 아래 처럼 를 사용해서 넣어주면 됩니다.

•⏱ 약 1분 소요•
#python#programming#django#web
읽어보기→
#579

Django: block

은 다음처럼 정의되어 있다고 하겠습니다. 내부를 자세히 보면, block으로 표시된 부분이 있죠. 은 다음처럼 정의됩니다. 을 extends하고, 앞서 정의한 , 를 대체해 줍니다. 를 사용하면, block에 원래 정의되어 있는 default 를...

•⏱ 약 2분 소요•
#python#programming#django#web
읽어보기→
#580

Django: HttpResponse

Controller에서 String을 에 묻혀서 View로 보내는 방법을 정리하였습니다. views.py - MainController 우선 Controller를 만들어 줍니다. 에 새로운 컨트롤러를 추가해줍니다. 컨트롤러 내부에서는 의 형태로 ...

•⏱ 약 2분 소요•
#python#programming#django#web
읽어보기→
#581

Conda env 변경하기

우선 를 사용하여 현재 사용가능한 conda environment를 확인해봅시다. 표시가 되어 있는 env가 현재 활성화되어 있는 env입니다. 저는 로 변경을 해주려고 합니다. 우선 를 사용해서 conda env를 활성화해줍니다. 그 다음 를 ...

•⏱ 약 3분 소요•
#python#conda#anaconda
읽어보기→
#582

Django: Include Static files

css, javascript, image와 같은 static 파일들을 Django 프로젝트 내에 집어넣기 위해서는 다음의 과정을 따르면 됩니다. 우선, 에서 static css file을 집어넣어주려고 합니다. head 부분에 다음의 부분을 넣어...

•⏱ 약 2분 소요•
#python#programming#django#web
읽어보기→
#583

Django: submit by GET, POST

사용자가 html 문서의 tag로부터 submit한 값을 컨트롤러가 전달받아서 처리해주는 작업을 정리합니다. template with form submit 에 다음 내용을 작성해줍니다. 보는 것처럼, GET, POST의 방식으로 submit하는 ...

•⏱ 약 5분 소요•
#python#programming#django#backend
읽어보기→
#584

Django: CSRF protection

CSRF는 "Cross Site Request Forgery"의 약자로, 사용자의 의도와 상관없이 사용자의 요청(Request)에 다른 요청을 숨겨서 전송하도록 하는 방법을 말합니다. 가령 사용자가 특정 POST를 보낼 때, 여기에 다른 POST...

•⏱ 약 1분 소요•
#python#programming#django#backend
읽어보기→
#585

Django: Form

보통 html에서 form 요소를 작성할 때는 다음과 같이 작성합니다. 간단한 input의 경우는 다음처럼 작성해도 아무 문제가 없습니다만, input이 여러 개이거나, 잘못된 input에 대해서 백엔드에서 프론트엔드로 메세지를 전달해주기 위해서...

•⏱ 약 8분 소요•
#python#programming#django#backend
읽어보기→
#586

MongoDB - python으로 mongoDB 사용하기

mongoDB - python python에서 mongoDB에 접속해서 데이터를 insert, select, update 등을 해보려고 합니다. 우선 를 설치해줍니다. Basic Usage pymongo를 사용해서 서버에 접속하고, collect...

•⏱ 약 16분 소요•
#mongodb#python#pymongo#database
읽어보기→
#587

Conda - 새로운 environment 만들기

conda를 사용해서 새로운 python 독립 환경을 만들기 위해서는 다음 커맨드를 사용하면 됩니다. 전체 command들을 보여드리면 다음과 같습니다. : 현재 설치되어 있는 conda environment들과 활성화되어 있는 conda env...

•⏱ 약 3분 소요•
#python#conda#anaconda
읽어보기→
#588

Python: requests

python library인 requests는 http 통신을 위한 python library입니다. 그냥 "웹의 리소스들에게 데이터를 보내고 받는 일들을 한다"라고만 생각하셔도 됩니다. Install requests 일단 설치부터 해보겠습니다....

•⏱ 약 14분 소요•
#python#python-libs#requests
읽어보기→
#590

Python: Selenium - Chrome driver

맥에서 다음과 같은 코드로 selenium에서 chrome browser를 사용하려고 하는 경우에 아래와 같은 오류가 발생합니디. chromedriver가 설치되어 있지 않다는 이야기죠. 를 사용해서 chrome driver를 설치해줍니다. 코드...

•⏱ 약 4분 소요•
#python#python-libs#seleinum#chrome
읽어보기→
#591

MongoDB - find - sort, limit, skip

mongoDB - sort, limit, skip mongoDB의 find method에서 정렬(sort), 처음 n개로 제한(limit), 처음 n개를 제외(skip)하여 결과를 리턴하는 방법을 정리합니다. 저는 python에서 mongoDB에...

•⏱ 약 3분 소요•
#mongodb#python#pymongo#database
읽어보기→
#592

MongoDB - dump, restore

mongoDB를 사용하여 특정 DB를 백업하고 복구하는 방법을 정리합니다. 그냥 mongodump를 사용하여 백업하면 된다고 하는데 실제로 해보니까 다음과 같은 오류가 발생합니다. 구글에서 찾아봐서 stackoverflow - mongodb - ...

•⏱ 약 10분 소요•
#mongodb#python#pymongo#database
읽어보기→
#593

MongoDB - dump to pickle by python

얼마 전에 mongoDB tools의 를 사용하여 백업하는 방법을 정리했습니다. 그런데, 이 를 사용한 백업이 결국 그냥 모든 document를 읽어서 json과 같은 파일로 저장해주는 것처럼 보이더라고요. 이럴 거면 그냥 내가 직접 mongoD...

•⏱ 약 3분 소요•
#mongodb#python#pymongo#database
읽어보기→
#594

MongoDB - get Distinct(unique)

mongoDB - distinct 를 사용하여 특정 칼럼의 distinct list를 가져올 수 있습니다. 아주 간단한 코드는 다음과 같습니다. 는 결과로 를 반환합니다. 보통의 sql에서는 2개 이상에 대해서 distinct tuple을 가져올...

•⏱ 약 10분 소요•
#mongodb#python#pymongo#database
읽어보기→
#595

MongoDB - aggregation

mongoDB의 aggreation을 정리합니다. 의미적으로는 SQL의 group by 라고 생각하셔도 됩니다. 저는 python을 사용해서 mongoDB에 접속합니다. aggregation - basic 를 사용하기 위해서는 pipeline이라...

•⏱ 약 9분 소요•
#mongodb#python#pymongo#database
읽어보기→
#596

Konlpy - extract nouns

konlpy를 사용하여 한글 문장에서 noun, pos등을 뽑아내는 방법을 정리합니다. konlpy에는 , , , , 와 같은 형태소 분석기(POS tagger)가 존재합니다. 해당 형태소 분석기들은 익숙한 단어들에 대해서는 명사를 잘 뽑아주지만...

•⏱ 약 5분 소요•
#python#python-libs#konlpy#nlp
읽어보기→
#597

Soynlp - extract nouns

konlpy의 경우 이미 학습된 데이터를 바탕으로 일반적인 단어들에서 명사를 뽑아내 줍니다. 그러나, 비교적 새로운 단어들인 "파이썬", "파이콘"과 사람이름과 같은 고유명사들에 대해서는 명사를 잘 추출해주지 못하죠. 따라서, 만약 내가 가지고 ...

•⏱ 약 7분 소요•
#python#python-libs#konlpy#nlp
읽어보기→
#598

Markdown - Generate table by python

markdown에서는 table을 다음과 같이 표현합니다. 이걸 자동으로 만들어주는 python code를 만들었습니다. 어려운 코드가 아닌데, 지금 제가 필요해서 대충 짜서 사용하려고요 호호

•⏱ 약 1분 소요•
#markdown#python#table
읽어보기→
#599

Conda - enabling tab completion

shell에서 conda 명령어 자동완성이 되지 않아서, 세팅해주려고 합니다. conda - enable tab completion 문서를 확인해 보면, bash shell에서는 conda version 4.3 이하에서만 지원된다고 나와 있습니다...

•⏱ 약 5분 소요•
#python#conda#anaconda#tab_completion
읽어보기→
#600

Conda, pip - export pkgs

conda - conda export pkgs conda 명령어를 사용하여, 현재 환경에서 설치된 패키지들을 확인하려면 다음 명령어를 사용하면 됩니다. 와 는 기본적으로 같다고 생각하시면 됩니다. 를 사용하면, 다음과 같이 깔끔한 형태로 정리해 ...

•⏱ 약 4분 소요•
#python#conda#anaconda#pip
읽어보기→
#601

7전 4선승전에서 첫번째 경기는 얼마나 중요한가?

스포츠에서 첫번째 경기를 이기는 것은 얼마나 경기에 영향을 미치는가? 많은 스포츠에서 "첫번째 경기를 잡는 것이 중요하다"라는 말이 있죠. 7전 4선승제 라고 봤을 때, 첫번째 경기를 이기게 되면, 남은 6경기에서 3경기만 잡으면 되므로 우승 확...

•⏱ 약 19분 소요•
#python#project#numpy#probablity
읽어보기→
#602

Python: datetime - timedelta를 float로 변환하기

python에서 시간을 다룰 때는 보통 library를 사용합니다. 은 "날짜 + 시각"을 는 시간 차이를 표현하죠. 간단하게 다음처럼 사용할 수 있습니다. 즉, 시간 차이를 표현하고 연산을 사용하려면, 를 사용하면 되긴 하는데요. 그냥 간단히 ...

•⏱ 약 4분 소요•
#python#python_lib#datetime#timedelta
읽어보기→
#604

NeoVim - Neovim 설정하고 jedi-vim 설치하기

Neovim설정하기 NeoVim은 에서 설정합니다. 없을 경우 폴더를 만들어 주고요. 을 만들어주고 처럼 파일 내용들을 작성해줍니다. theme의 경로가 달라졌기 때문에 기존 theme 을 가져와서 복사해줍니다. pkg manager 설치하기 -...

•⏱ 약 7분 소요•
#vim#vi#neovim#nvim
읽어보기→
#605

Vim10 - Install jedi-vim for python

Install Vundle, Jedi-Vim Vundle을 이용해서, jedi-vim을 설치해봅니다. 에 아래 내용을 추가해줍니다. 그리고 vim 내에서 을 실행해줍니다. python 파일을 열어보니 아래와 같은 오류가 발생하는데 흠. 이건 pa...

•⏱ 약 5분 소요•
#vim#jedi#python#programming
읽어보기→
#606

Pypy00 - Install PyPy

pypy00 - Before Install PyPy 우리가 일반적으로 윈도우에서 사용하고 있는 python은 사실상 CPython입니다. 우리는 python 명령어 등으로 프로그래밍을 한다고 생각하지만, 그 뒷단에서는 각 python 명령어를 C...

•⏱ 약 9분 소요•
#pypy#compiler#python#programming
읽어보기→
#607

Vim 13 - Install YouCompleteME - 실패기

Vim에서 프로그래밍을 하기 위해, AutoComplete Plugin 인 github - YouCompleteme - Installation를 설치하려고 하였으나, 결국은 되지 않아서 그 실패기를 정리합니다. macOS Monterey(12.1...

•⏱ 약 21분 소요•
#vi#vim#python#jedi
읽어보기→
#608

Vim 16 - jedi-vim to coc.nvim

python completer를 Jedi에서 coc.nvim으로 변경해봅니다 처음에는 Jedi를 사용해서 python auto complete를 사용했습니다만, .(dot)을 누른다음, popup이 뜨는 데 까지 너무 오랜 시간이 소요되더군요. ...

•⏱ 약 4분 소요•
#vim#completer#vi#plugin
읽어보기→
#609

Vim 17 - syntax checking by syntastic

작성한 code에 대해서, 잔소리해주는 lint를 설치해보기로 합니다. 보통은 코드를 작성한 다음, 커맨드 라인에서 다음의 형태로 실행합니다만, 이렇게 하게 되면 vim > bash > vim의 순서로 왔다갔다 해야 한다는 번거로움이 있죠. vi...

•⏱ 약 3분 소요•
#vim#python#pylint#syntax
읽어보기→
#610

Pypy에서 numpy 설치 및 사용하기

python으로 개발하고 로 돌리는데 속도가 너무 느리더군요. 그래서 를 사용해서 돌리려고 보니, 다음과 같은 오류와 함께 돌아가지 않았습니다. python에는 가 설치되어 있지만, pypy에는 가 설치되어 있지 않기 때문이죠. pypy에서 pi...

•⏱ 약 7분 소요•
#pypy#compiler#python#programming
읽어보기→
#611

Wordle solver 만들어보기 - basic

요즘 친구들과 wordle 게임을 하고 있습니다. 그냥 5 문자로 된 word를 맞추는 게임인데요, 이게 하루에 1기기로 1번만 할 수 있어서인지 모르겠지만 꽤 오랫동안 매일 해오고 있습니다. About Wordle wordle은 Josh War...

•⏱ 약 18분 소요•
#wordle#python#pypy
읽어보기→
#612

Matplotlib - scatter 수에 따른 변화

scatter 에 point를 그릴 때, point의 수가 늘어남에 따라서 그리고 저장하는데 얼마나 시간이 걸리는지 간단하게 테스트 해봤습니다. '.svg' file로 처리했을 경우, 1,000,000 개를 그릴 때, file은 100MBd, 시...

•⏱ 약 5분 소요•
#plt#matplotlib#scatter#python
읽어보기→
#614

Python requests - 403 Forbidden because of User agent

Problem python requests package 를 사용해서 웹 크롤링을 할 때, 웹브라우저에서는 잘 보이는 문서가, requests 로 가져올 때는 403 forbidden이 발생하는 경우가 있습니다. code는 간단히 다음과 같죠. ...

•⏱ 약 5분 소요•
#python#requests
읽어보기→
#615

Os makedirs

python 에서 디렉토리 생성이 필요할 경우 다음 두 가지 방식을 사용해서 생성할 수 있습니다.

•⏱ 약 1분 소요•
#os#python
읽어보기→
#616

Python: context manager

A context manager in Python is a programming construct that allows you to manage the setup and teardown of resources in a structured and ...

•⏱ 약 8분 소요•
#python#context
읽어보기→
#617

Selenium - browser with context

When using Selenium for web scraping, it's common to encounter situations where the browser is not closed properly, especially if an exce...

•⏱ 약 9분 소요•
#selenium#browser#python
읽어보기→
#618

Vim syntastic00 - disable E501

Recently, I installed the latest version of PyFlake8, a widely used Python linting tool. However, I noticed that after the installation, ...

•⏱ 약 10분 소요•
#syntastic#pyflake8#python
읽어보기→
#619

Json - ensure ascii

JSON - Preserving Non-ASCII Characters When using the module in Python to handle JSON data containing non-ASCII characters, you may encou...

•⏱ 약 4분 소요•
#json#python
읽어보기→
#620

Python: pycache

Understanding Python's Folder and Bytecode Optimization When you execute Python code on your local computer using the command , you might...

•⏱ 약 14분 소요•
#python
읽어보기→
#621

Python: traceback

When dealing with exceptions in Python, we would make use of the traceback module, as demonstrated in the code snippet below. In cases wh...

•⏱ 약 6분 소요•
#python#traceback
읽어보기→