[Python] 페이지랭크 알고리즘
·
Python
페이지랭크 알고리즘은 구글의 초기 검색 엔진 알고리즘입니다. 이 알고리즘을 통해 각 웹사이트에 점수를 부여하고 점수 가 높은 순으로 사용자에게 보이게 됩니다. 많은 웹사이트에서 내 웹사이트를 링크할수록, 점수가 높은 다른 웹사이트에 서 내 웹사이트를 링크할수록 내 웹사이트의 점수는 높아지게 됩니다. 위 예시에서 B는 많은 링크가 걸려 점수가 높고, C는 점수가 높은 B로부터 링크가 걸렸기 때문에 점수가 높습니다. 점수를 구하는 방법은 다음과 같습니다. 간단한 예시를 통해 계산해보겠습니다. $$r_{j}=\sum_{i \in N_{i n}(j)}\left(\alpha \frac{r_{i}}{d_{o u t}(i)}\right)+(1-\alpha) \frac{1}{|V|}$$ A, B, C, D 4개의 페이..
DataFrame Iteration 속도 비교
·
Python
수백만 row가 넘는 데이터를 전처리하는데 전처리가 조금 복잡하여 iterrows를 돌렸더니 시간이 너무 오래 걸려 쓰게 된 글입니다. 다음과 같이 dataframe이 있을 때 각각의 iteration방법들을 비교해 보겠습니다. 1. for loop %%timeit for row in range(len(df)): tmp = df.iloc[row,0]+df.iloc[row,1]+df.iloc[row,2] 1min 21s ± 6.04 s per loop (mean ± std. dev. of 7 runs, 1 loop each) 2. iterrows %%timeit for _, row in df.iterrows(): tmp = (row['A']+row['B']+row['C']) 48.1 s ± 2.11 s p..
디렉토리에서 파일리스트 가져오기 (glob, os.walk)
·
Python
여러 하위 폴더에서 원하는 데이터를 가져오고 싶을 때가 있는데 그때 유용한 방법들입니다. 1. glob 2. os.walk os.walk는 3가지 인자를 반환합니다. 첫 번째 인자(current)는 현재 방문하고 있는 폴더의 이름 두 번째 인자(folders)는 현재 방문하고 있는 폴더 안의 폴더들 세 번째 인자(files)는 현재 방문하고 있는 폴더 안의 파일들 따라서 다음과 같이 폴더 안의 파일들을 리스트로 만들 수 있습니다.