목록2020/11 (26)
우노
Scala에는 고정길이 배열과 가변길이 배열이 있다. 고정길이 : Array 초기화 //배열의 크기가 10인 Int type Array 초기화 val a = new Array[Int](10) //값을 할당해 Array 초기화 val b = Array("hello","world"); 요소 접근 // a 배열의 0번째 index 접근 a(0) // b 배열의 1번째 index 접근 b(1) 요소 수정 // a 배열의 0번째 index 수정 a(0) = 1 // b 배열의 1번째 index 수정 b(1) = 2 가변길이 : ArrayBuffer 초기화 import scala.collection.mutable.ArrayBuffer val c = ArrayBuffer[Int]() 요소 접근 // a 배열의 0번째..
Matrix를 일정 단위로 slice 한 뒤 각각의 nnz, density 구하기 Input Matrix data Matrix data의 행 크기 Matrix data의 열 크기 Slice 하고자하는 행 크기 Slice 하고자하는 열 크기 Output Slice 별 nnz Slice 별 density Slice 별 nnz의 평균 Slice 별 density의 평균 코드 해당 코드는 (317080,317080) 행렬을 (40000,50000) 단위로 자른것이며 총 42개의 Slice가 발생합니다. import scala.collection.mutable.ArrayBuffer import scala.math.BigDecimal // inputfile val input = sc.textFile("s3://sn..
SNAP Stanford SNAP Stanford에는 다양한 Graph dataset을 제공한다. http://snap.stanford.edu/data/index.html 이 포스트에서는 Networks with ground-truth communities의 하위 데이터들을 사용했다. Graph data type SNAP Stanford에서 Graph data는, 두 가지 type(Undirected, Directed)으로 구성 되어있다. Undirected edge에 방향이 없는 대칭 그래프 예) Undirected graph data (Nodes : 334863, Edges : 925872) 내부 1 88160 1 118052 1 161555 . . . 548368 548454 548391 54841..
file read 시 head 제거 기존 데이터 # Undirected graph: ../../data/output/dblp.ungraph.txt # DBLP # Nodes: 317080 Edges: 1049866 # FromNodeId ToNodeId 0 1 0 2 ... read 시 head 제거 with open(inputfile,"r") as rf: # 첫 4줄(head) 제거 for i in range(4): next(rf) # head 이후부터 읽기 for i in rf: print(i) 0 1 0 2 ...
.values 또는 .to_numpy() 를 사용해 DataFrame을 numpy 배열 형식으로 변환할 수 있다. 예제 코드 import pandas as pd # DataFrame 생성 data = [['Choi',22],['Kim',48],['Joo',32]] df = pd.DataFrame(data, columns=['Name','Age']) # .values 또는 .to_numpy() 를 사용해 numpy 배열로 변환 print(df.values) print(df.to_numpy()) #[['Choi' 22] # ['Kim' 48] # ['Joo' 32]]
Numpy 1차원 배열 생성 및 append 예제 import numpy as np # 바로 생성하는 방법 arr = np.array([1,2,3,4]) # 요소를 추가하는 방법 arr1 = np.array([]) arr1 = np.append(arr1, np.array([1,2,3])) arr1 = np.append(arr1, np.array([4,5])) print(arr) # [1. 2. 3. 4.] print(arr1) # [1. 2. 3. 4. 5.] Numpy 2차원 배열 생성 및 append 예제 바로 생성하는 방법 import numpy as np arr = np.array([[1,2,3],[4,5,6]]) print(arr) #[[1 2 3] # [4 5 0]] 요소를 추가하는 방법 # ..
스팸 필터 스팸 메일은 어떻게 분류 할 수 있을까? Naive Bayes 통계적 분류기 각 분류별 확률 값을 계산 분류 해주는 게 아니라 확률 값을 계산해준다. 베이즈 정리에 따라 확률 계산 확률 계산의 단서(메일에 포함된 단어)들이 서로 조건부독립임을 가정 확률 계산이 단순해진다. Naive Bayes 스팸 필터 새로운 메일이 왔다. 스팸인지 알아보려면? 해당 메일의 내용을 보지 않았을 때 예) 기존 스팸 메일과 일반 메일의 비율 만 보고 단순하게 일반 메일 80%, 스팸 메일 20%와 같이 예측 할 수 있다. 해당 메일의 내용을 봤을 때 메일에 포함된 단어들이 스팸 메일에 자주 나오는 단어인지, 일반 메일에 자주 나오는 단어인지를 살펴보고 스팸 여부를 판단 할 수 있다. 위와 같은 결과를 위해선 먼저..
들어가기 앞서, DataFrame 의 index 가 순서대로 정렬 되어 있지 않다면, 아래와 같은 방법을 사용해, index 를 정렬 및 초기화할 수 있습니다. Index 정렬 존재하는 index 기준으로 데이터를 재정렬합니다. 기본 정렬 방식은 오름차순(ascending)이며, 내림차순으로 정렬하고 싶다면, ascending 옵션을 False 로 설정하면 됩니다. df = df.sort_index(ascending=False) Index 초기화 후 정렬 존재하는 index 를 모두 초기화한 뒤, 0 부터 재정렬합니다. df = df.reset_index(drop=True)
설치 # pip 를 이용해 파이썬 패키지 jupyterthemes 를 설치합니다. pip install jupyterthemes테마 변경 # 변경 가능한 테마 리스트 확인 jt -l # 테마 변경 jt -t 변경할 테마 이름 # 이후 jupyter notebook 재접속 1) chesterish 2) grade3 3) gruvboxd 4) gruvboxl 5) monokai 6) oceans16 7) onedork 8) solarizedd 9) solarizedl
테스트를 진행할 서버는 EC2이며, Docker가 설치되어있다고 가정하겠습니다. db 디렉토리 생성 서버에 db 디렉토리 생성 mkdir mysql-init-files 로컬에 있는 db 파일을 서버의 db 디렉토리로 복사 scp -i [pem파일경로] [로컬 파일 경로] [ec2-user계정명]@[ec2 instance의 public DNS]:~/[서버 파일 경로] MySQL Container 생성 및 db 볼륨 마운트 MySQL 이미지 다운로드 docker pull mysql 컨테이너 생성 시 서버의 db 디렉토리와 볼륨 마운트 docker run -d -p 3306:3306 --name mysql-container -e MYSQL_ROOT_PASSWORD=1234 -v ~/mysql-init-file..