본문 바로가기
반응형

비전공자개발자17

[홀로서기 #07] 80 Features, 8M Records... Pandas 말고 Dask! # 홀로서기 기획 연재물은 최근 개인 프로젝트를 진행하면서 겪은 어려움들을 기록한 지극히 개인적인 콘텐츠입니다. 빅데이터에 압도되다. 누가 보면 비웃을 수도 있을 것이다. '이 친구, 초짜구만. 고작 800만 개로 빅데이터라니!'. 그렇다. 필자는 아직 주니어다. 기업 데이터라고 해도 많아 봐야 고작 몇 십만개 정도였다. 그리고 그런 경험 정도로, 이번 새로운 프로젝트를 시작했다. 무려 8M(M은 흔히 1백만 개를 이르는 말이다) 사이즈의 데이터를 다루는 프로젝트이다. 기존에 Python으로 프로젝트를 진행할 때는, Pandas 모듈의 DataFrame을 활용했다. 기본 통계 분석부터, Matplotlib, Seaborn, Plotly Express까지 간편하게 연계하여 시각화를 진행했고, 잘 갖춰진 도.. 2022. 1. 19.
Python Data Structure 기본 데이터 구조 - 스택과 큐(Stack & quere with list) - 튜플과 집합(Tuple & Set) - 사전(dictionary) - Collection 모듈 Stack - 나중에 넣은 데이터를 먼저 반환하도록 설계된 메모리 구조 - Last In First Out(LIFO) - '리포' 구조라고 읽음 - Data의 입력을 Push, 출력을 Pop이라고 함 - List(리스트)를 사용해서 스택 구조를 설계할 수 있음 - 리스트에서는 push를 append()로, pop을 pop()으로 구현 Quere - 먼저 넣은 데이터를 먼저 반환하도록 설계된 메모리 구조 - First In First Out(FIFO) - '피포' 구조라고 읽음 - Stack과 반대되는 개념 - 파이썬은 리스트를 사용.. 2022. 1. 17.
String and advanced function concept String - 문자열 데이터 - 시퀀스 자료형으로, 문자형 데이터를 메모리에 저장 - 영문자 한 글자는 1byte의 메모리 공간을 사용 - 1byte = 8bit = 2**8 = 256까지 저장 가능 - bit는 0 또는 1 - 컴퓨터는 문자를 직접적으로 인식하지는 않고, 모든 데이터를 2진수로 인식함 - 이를 위해서 2진수를 문자로 변환하는 표준 규칙을 정함 - Ex) 대문자 U는 이진수로 1000011로 변환됨 (UTF-8기준) - 아스키 코드 표준(ASCII)를 많이 씀 - 메모리 공간 정수형 : int(4byte), long(무제한) 실수형 : float(8byte) - 인덱싱(Indexing) - 문자열의 각 문자는 개별 주소를 가짐 -> 이 주소를 가지고 할당된 값을 가져옴 - 슬라이싱(Sl.. 2022. 1. 17.
Variable & List > Variables - 가장 기초적인 문법 - 데이터(값)을 저장하기 위한 메모리 공간의 프로그래밍상 이름 - 변수 = 값 : 변수에 값을 저장한다. - 변수는 값을 저장하는 장소 - 변수는 메모리 주소를 가지고 있고, 변수에 들어가는 값은 메모리 주소에 할당됨 Cf) 컴퓨터의 구조 - 폰 노이만 아키텍쳐 - 사용자가 컴퓨터에 값을 입력하거나 프로그램을 실행하면, 메모리에 저장하고 시작한다고 생각하자. - 선언되는 순간 메모리 특정 영역에 물리적인 공간이 할당된다. - 변수에 값이 할당되고, 해당 값은 메모리에 저장됨. - A=8의 의미는 'A라는 이름을 가진 메모리 주소에 8을 저장하라'라는 말 > 변수 이름 작명법 - 알파벳, 숫자, 언더스코어(_)로 선언 가능 - 변수명은 의미 있는 단어로 표기하.. 2022. 1. 14.
[홀로서기 #04] 회귀 모델링 하기 전에 꼭 확인하기 (1) - 범주형 특성 변수(Categorical Features) # 홀로서기 기획 연재물은 최근 개인 프로젝트를 진행하면서 겪은 어려움들을 기록한 지극히 개인적인 콘텐츠입니다. SQL로 최종 데이터 가져오기 지난 시간에 이어서 서울권 공유자전거(따릉이) 이용 데이터를 살펴본다. 시각화를 통해 데이터의 전체적인 모양과 흐름 파악을 마쳤으니, 예측 모델링을 위한 최종 전처리를 진행하고 실제로 ML(Machine Learning) 모델을 적용해봤다. 지금까지(홀로서기 #03)는 서울 강남역 근처의 5개소 대여소만을 기준으로 데이터를 봤다면, 최종 모델링은 전체 데이터를 활용해서 진행했다. 아래 Python 코드는 AWS의 RDS(데이터베이스)에 저장된 데이터 중 최종 모델링에 활용할 데이터를 SQL Query로 불러오는 예시를 나타낸 것이다. conn_aws = mysql.. 2021. 12. 28.
[홀로서기 #02] SQL 대량 데이터, VIEW로 핸들링하기 # 홀로서기 기획 연재물은 최근 개인 프로젝트를 진행하면서 겪은 어려움들을 기록한 지극히 개인적인 콘텐츠입니다. VS Code + SQL = 신세계 !! 필자는 데이터 비전공자다. 2021년 초에 스마트시티 관련 사업에 참여하면서, 데이터 비즈니스에 대한 전망을 봤다. 그리고 하반기부터 데이터를 공부하겠다고 마음 먹고, 전업을 잠시 접고 ML과 데이터 관련 학습에 매진하는 중이다. 파이썬의 '파', 아니지 'ㅍ'도 몰랐던 시절이 있었는데, 지금은 Jupyter Notebook의 테마를 바꿔보자며, 취향껏 공부를 하는 수준에 이르렀다. 그리고 최근에는 SQL 프로젝트를 진행하면서, VS Code를 쓰기 시작했다. 터미널 따로, Jupyter 웹 따로 두니까 너무 불편했었다. 하지만 지금은 VS Code에서.. 2021. 12. 14.
[8일차] 튜플(tuple)과 딕셔너리(dictionary)는 복습이 필요해. [튜플; Tuple] - 리스트와 비슷하지만 아이템 변경 불가 - 아이템 변경(수정, 삭제 등)이 불가능함 : 리스트는 가능 - ()을 이용해서 선언하고, 데이터 구분은 콤마(,)를 활용한다. - 숫자, 문자(열), 논리형 등 모든 데이터를 같이 저장할 수 있다. - 튜플에 또 다른 컨테이너 자료형 데이터를 저장할 수 있다. - 튜플 아이템 조회 : 리스트와 마찬가지로 아이템에 자동으로 부여되는 번호표가 있음 - N개의 요소가 있다면 인덱스는 0 ~ (N-1)까지 자동 부여 - 튜플 아이템은 tuple[idx] 방식으로 조회 - in /not in : 아이템 존재 유/무 판단 - item in tuple : 있으면 True, 없으면 False 결과 나옴 - in과 not in 키워드는 문자열에서도 사용 .. 2021. 10. 22.
[7일차] 리스트 요긴하게 쓰기 위한 추가/삭제/슬라이싱. 분명하게 정리하기! * Web Data 관련 강의가 함께 있어서, 오늘 수강한 강의 분량이 적다. [리스트 요소 추가, 삭제, 수정] - 추가 : list.append(요소) - append() - append로 들어갈 수 있는 요소는 또 다른 리스트도 가능하다. ex) list.append([a,b,c]) - append는 항상 리스트의 마지막 인덱스에 추가됨 - 추가2 : list.insert(인덱스, 요소) - 특정 위치(인덱스)에 아이템을 추가할 수 있음 - insert() 연습문제) 오름차순으로 정렬되어 있는 숫자들에 사용자가 입력한 정수를 추가하는 프로그램을 만들어보자. (단, 추가 후에도 오름차순 정렬이 유지되어야 한다.) - 주어진 리스트 : [1, 3, 6, 11, 45, 54, 62, 74, 85] - e.. 2021. 10. 19.
[6일차] 기초수학 연습문제로 마무리하고, 자료구조 시작! [연습문제] - N보다 작은 약수, 소수, 소인수 출력하기 -> 약수는 N에서 해당 수를 나눠서 나머지가 0이면 출력 -> 소수는 해당 수를 다시 1부터 해당 수 - 1 까지 나눠서 나머지가 0인 애가 없으면 출력 -> 소인수는 약수이면 +1, 소수이면 +1해서 2 이면 출력 - N을 소인수분해해서, 소인수들의 지수 출력하기 -> 나머지가 0이면 리스트에 추가하고 갯수 세기 : list.count(n) - list에서 n의 갯수를 카운트함 - 서로소는 1 이외에 약수가 없는 두 수를 의미함 - 최소공배수는 두 수의 곱에서 최대공약수로 나누면 구할 수 있음 : 최대공약수를 먼저 구하면 될 듯 - 2진수로 변환 : bin(n) - 8진수로 변환 : oct(n) - 16진수로 변환 : hex(n) - 10진수.. 2021. 10. 17.
반응형