오늘 할 일: 끝내주게 숨쉬기
article thumbnail
[JSON] 파이썬에서 json 파일 읽기, 쓰기, 수정하기

JSON 파일이란? JSON은 JavaScript Object Notation의 약자로 JavaScript 언어의 자료형을 텍스트로 표현한 포맷입니다. 키-값 쌍으로 이루어져 있으며 사람이 쉽게 읽을 수 있도록 구성되어 있습니다. 서로 다른 시스템간에 데이터를 교환하기에 좋고, 언어가 다르더라도 데이터를 교환하는데 용이하다는 장점이 있습니다. JSON은 데이터를 키(key)와 값(value)로 표현하고, 이를 중괄호 {}로 감싸서 표현합니다. 예를 들면 {"점수" : 80} 이런 식이죠. 키는 큰따옴표로 묶은 문자열이고, 여러 개의 키-값 쌍을 저장하고 싶다면 쉼표(, comma)로 구분합니다. 만약 값으로 둘 이상의 값들을 사용하고 싶다면 대괄호 []로 묶어주면 됩니다. ex) {"singer": "T..

article thumbnail
[Flask] Flask 개념과 예제 코드 소개

Flask 소개 Flask는 파이썬에서 사용하는 경량 WSGI(Web Server Gateway Interface)로, 웹 애플리케이션을 구축할 수 있는 라이브러리입니다. Flask를 활용하면 웹 페이지, 블로그 혹은 머신러닝 예측 결과를 제공하는 웹 API를 만들 수 있습니다. 아래 그림에서 보는 바와 같이 머신러닝 모델과 프론트엔드 웹 페이지를 연결해주는 중간 다리로 사용되죠. 장고Django와 함께 파이썬 웹 프레임워크의 양대산맥으로 알려져 있습니다. Django는 이미 잘 짜여진 다양한 기능을 제공하는 반면 Flask는 심플한 대신에 사용자 자유도가 높다고 하네요. (마치 케라스와 파이토치같은..?ㅎ 아님 말고..) 이제 아래 예시에서 iris 데이터를 이용하여 모델을 만든 후, 플라스크가 모델에..

article thumbnail
[pandas] 딕셔너리를 데이터프레임의 열로 변경하는 방법

데이터프레임 형태를 갖는 어떤 데이터가 있다고 합시다. 이 데이터의 한 칼럼은 하나의 값이 아니라 여러 개의 값을 갖고 있습니다. 각각의 값들이 하나의 칼럼이 되어 새로운 값을 갖도록 하려면 어떻게 해야 할까요? 한 강의를 듣다가 문득 궁금증이 생겼는데, 강사님께서 직접 찾아보라고 하셔서 ㅎ.. 알아보았습니다. 유용하게 쓰일 법한 테크닉인데, 구현하는 방법은 굉장히 단순해서 놀랐어요. 데이터 준비 import os import pandas as pd import numpy as np from tqdm import tqdm path = '../data/movielens' movies_df = pd.read_csv(os.path.join(path, 'movies.csv'), index_col='movieId..

[pandas] object와 category의 차이

파이썬에서 tabular 형식으로 갖춰진 데이터를 다룰 때 보통 판다스를 가장 먼저 사용하죠. 판다스는 칼럼이 가질 수 있는 자료형으로 숫자, 문자, 날짜, boolen(True or False) 등을 지원합니다. 판다스로 데이터프레임을 다뤄보다가 문득 object 형식과 category 형식이 정확히 어떤 차이인지 궁금해졌어요. 그래서 이 포스팅에서는 두 형식의 개념과 차이에 대해 알아보고자 합니다. 판다스에서 자료형으로 사용되는 object와 category의 개념은 다음과 같이 이해할 수 있습니다. object 판다스에서는 문자열을 object라는 자료형으로 나타냅니다. 파이썬에서는 문자열을 string이라고 하지만, 판다스는 object라고 합니다. pd.DataFrame을 사용하여 데이터프레임을..

Numpy 기초 튜토리얼

Numpy는 과학 계산을 위해 반드시 필요한 패키지입니다. 다차원 배열을 위한 기능과 선형 대수 연산, 수학 함수, 유사 난수 생성기를 포함합니다. 핵심 기능은 다차원 배열인 ndarray 클래스로, 이 배열의 모든 원소는 동일한 데이터 타입이어야 합니다. 1. 배열 만들기 numpy 배열은 리스트로 구현합니다. import numpy as np a = np.array([1, 2, 3]) b = np.array([[1.5, 2, 3], [4, 5, 6]]) print(a) print(b) [1 2 3] [[1.5 2. 3. ] [4. 5. 6. ]] np.zeros([행의 수, 열의 수]) np.zeros([3, 4]) # 영행렬 생성 array([[0., 0., 0., 0.], [0., 0., 0., ..

article thumbnail
[프로그래머스] level 2 : 위장
OLD/Coding Test 2020. 3. 14. 16:53

문제 설명 스파이들은 매일 다른 옷을 조합하여 입어 자신을 위장합니다. 예를 들어 스파이가 가진 옷이 아래와 같고 오늘 스파이가 동그란 안경, 긴 코트, 파란색 티셔츠를 입었다면 다음날은 청바지를 추가로 입거나 동그란 안경 대신 검정 선글라스를 착용하거나 해야 합니다. 종류 이름 얼굴 동그란 안경, 검정 선글라스 상의 파란색 티셔츠 하의 청바지 겉옷 긴 코트 스파이가 가진 의상들이 담긴 2차원 배열 clothes가 주어질 때 서로 다른 옷의 조합의 수를 return 하도록 solution 함수를 작성해주세요. 제한 사항 clothes의 각 행은 [의상의 이름, 의상의 종류]로 이루어져 있습니다. 스파이가 가진 의상의 수는 1개 이상 30개 이하입니다. 같은 이름을 가진 의상은 존재하지 않습니다. clot..

[3주차 탐색] 코드 리뷰
OLD/Coding Study 2020. 3. 4. 14:00

탐색 1. Lv1 - 세 소수의 합 def solution(n): num = set(range(2, n + 1)) for i in range(2, n + 1): if i in num: num -= set(range(2 * i, n + 1, i)) num = list(num) answer = 0 for i in range(len(num)): for j in range(i + 1, len(num)): if (n - num[i] - num[j]) in num[j + 1:]: answer += 1 return answer 에라토스테네스의 체 : 시간복잡도는 O(NloglogN), N = 입력으로 주어진 n 소수 구하기 : 시간복잡도는 O(M**3), M = 소수의 개수 num 대신 prime_numbers, p..

[2주차 해시, 스택] 코드 리뷰
OLD/Coding Study 2020. 2. 28. 09:30

해시 1. Lv 2 - 나머지 한 점 import collections def solution(v): coord = {'x': [i[0] for i in v], 'y': [j[1] for j in v]} answer = [] for value in coord: my_counter = collections.Counter(coord[value]) my_counter = sorted(my_counter.items(), key=lambda x: x[1]) answer.append(my_counter[0][0]) return answer 딕셔너리 자료구조는 for key, value in coord.items() 또는 for axis, coordinates in coord.items()와 같이 표기하기 2. Lv..

[1주차 큐, 힙] 코드 리뷰
OLD/Coding Study 2020. 2. 23. 16:37

1. 큐 Lv 2 - 최대 용량이 정해진 FIFO 큐 클래스 class MyStack(object): def __init__(self): self.lst = list() def push(self, x): self.lst.append(x) def pop(self): return self.lst.pop() def size(self): return len(self.lst) class MyQueue(object): def __init__(self, max_size): self.stack1 = MyStack() self.stack2 = MyStack() self.max_size = max_size def qsize(self): return self.stack1.size() + self.stack2.size() d..

article thumbnail
[자료구조] 스택, 큐, 덱

스택(Stack) 데이터가 입력되면 입력되는 순서대로 쌓고, 나중에 들어온 것부터 먼저 사용하는 자료구조입니다. 스택 형태의 데이터 구조를 LIFO(Last-In-First-Out)형이라고 하며, 스택에 데이터를 넣는 것을 'PUSH', 데이터를 꺼내는 것을 'POP'이라고 합니다. 파이썬에서는 리스트를 사용해 스택을 구현할 수 있습니다. 초기화하기 원소 삽입 : append(x) 원소 제거 : pop() pop()은 마지막 원소를 리턴하고 제거합니다. top 가져오기 인덱스 -1은 가장 마지막에 삽입된 원소를 가리킵니다. 큐(Deque) 데이터가 입력되면 입력되는 순서대로 쌓고, 먼저 들어온 것부터 먼저 사용하는 자료구조입니다. 이를 FIFO(First-In-First-Out), 선입선출이라고 합니다...

반응형