반응형 Data Science92 Python Object Oriented Programming 객체 지향 프로그래밍 언어, Object Oriented Programming(OOP) - 객체 : 실생활에서 일종의 물건 - 속성(Attribute), 행동(Action)을 가짐 - OOP는 이러한 객체 개념을 프로그램으로 표현 - 속성은 변수(Variable), 행동은 함수(Method)로 표현됨 - 파이썬 역시 객체 지향 프로그램 언어 - 인공지능 축구 프로그램을 작성한다고 가정하면 - Object는 팀, 선수, 심판, 공 - Action은 선수가 공을 차다, 패스하다 - Attribute는 선수의 이름, 포지션, 소속팀 - OOP는 설계도에 해당하는 클래스(Class)와 실제 구현체인 인스턴스(Instance)로 나뉨 Objects in Python class SoccerPlayer(object).. 2022. 1. 24. Pythonic code Why Pythonic code? - 남 코드에 대한 이해도 향상 : 많은 개발자들이 python 스타일로 코딩한다. - 효율 : 단순 for loop append 보다 list comprehension이 더 빠르다. - 간지 : 쓰면 왠지 코드 잘 짜는 것처럼 보인다. split & Join - split : string 타입 값을 '기준값'으로 나눠서 list 형태로 반환 - split() : 공백 기준으로 문자열 나누기 - split(",") : 콤마(,) 기준으로 문자열 나누기 - join은 반대로 붙이는 것 - list를 join(list) 형식으로 붙여주는데, 붙일 때 가운데 어떤 문자로 할지 선택 - '/'.join(list) : list의 요소들을 중간에 '/'을 붙여서 모두 문자열로 반환.. 2022. 1. 24. [홀로서기 #07] 80 Features, 8M Records... Pandas 말고 Dask! # 홀로서기 기획 연재물은 최근 개인 프로젝트를 진행하면서 겪은 어려움들을 기록한 지극히 개인적인 콘텐츠입니다. 빅데이터에 압도되다. 누가 보면 비웃을 수도 있을 것이다. '이 친구, 초짜구만. 고작 800만 개로 빅데이터라니!'. 그렇다. 필자는 아직 주니어다. 기업 데이터라고 해도 많아 봐야 고작 몇 십만개 정도였다. 그리고 그런 경험 정도로, 이번 새로운 프로젝트를 시작했다. 무려 8M(M은 흔히 1백만 개를 이르는 말이다) 사이즈의 데이터를 다루는 프로젝트이다. 기존에 Python으로 프로젝트를 진행할 때는, Pandas 모듈의 DataFrame을 활용했다. 기본 통계 분석부터, Matplotlib, Seaborn, Plotly Express까지 간편하게 연계하여 시각화를 진행했고, 잘 갖춰진 도.. 2022. 1. 19. [SQL] Conceptual Data Modeling Conceptual Data Modeling : 개념적 데이터 모델링 - 우리가 파악한 업무에서 데이터를 뽑아내는 과정 - 논리적 모델링과 물리적 모델링보다 앞선 단계이지만 - 논리적 모델링을 경험해보지 않은 사람이 개념적 모델링을 할 수 없다. - 개념적 모델링을 잘하고 나면, 논리적 모델링과 물리적 모델링은 기계적인 일이다. - 개념적 모델링이 매우 어려운 일이다. - 저걸 나 혼자 할 수 있을까? -> 이런 생각은 당연한 것 - "지금은 혼자할 수 없는 것이 정상이예요 :)" 개념적 모델링의 효용 - 일상을 구분해줄 필터를 제공해준다. - 개념에 대해서 다른 사람과 대화하게 해주는 언어로서 작용 - 현실은 무수히 복잡하게 생겼다. - 현실에서 개념을 뽑는 것 - 개념을 뽑는 데 3개의 관점으로! 정.. 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. Conditionals and Loops > Conditionals - 조건문 : If, elif, els - 프로그램 작성 시 조건에 따른 판단과 반복은 필수 - 조건문이란 조건에 따라 특정한 동작을 하게 하는 명령어 - 조건문은 조건을 나타내는 기준과 실행해야 할 명령으로 구성됨 - 조건의 참, 거짓에 따라 실행해야 할 명령이 수행되거나 되지 않음 - If-else - 조건을 표기해서 참, 거짓을 판단하는데 비교 연산자를 활용함 - a의 값과 b의 값이 같더라도 a is b가 False일 수 있음 -> is는 주소를 비교해서 같은지 확인하기 때문임 - if 'abc'는 참이고, if ""는 거짓임 - 논리 키워드 and, or, not : 논리 키워드에 따라 참과 거짓을 판단하기도 함 - and는 양쪽이 모두 참이어야 참, or는 한쪽만 참.. 2022. 1. 14. Function and Console I/O > Function - 어떤 일을 수행하는 코드의 덩어리 - 반복적인 수행을 1회만 작성 후 호출 - 코드를 논리적인 단위로 분리 - 캡슐화 : 인터페이스만 알면 타인의 코드 사용 - 함수 선언 문법 : function name, parameter, indentation, return value(optional) - 함수 수행 순서 : 함수 부분을 제외한 메인 프로그램부터 시작 -> 함수 호출 시 함수 부분을 수행 후 되돌아옴 - parameter : 함수의 입력 값 인터페이스 Ex) F(x)에서 x를 의미함 - argument : 실제 parameter에 대입된 값 Ex) F(x)에서 x에 들어간 실제 값을 말함 - parameter 유무, 반환 값 유무에 따라 함수의 형태가 다름 > Console I.. 2022. 1. 14. Variable & List > Variables - 가장 기초적인 문법 - 데이터(값)을 저장하기 위한 메모리 공간의 프로그래밍상 이름 - 변수 = 값 : 변수에 값을 저장한다. - 변수는 값을 저장하는 장소 - 변수는 메모리 주소를 가지고 있고, 변수에 들어가는 값은 메모리 주소에 할당됨 Cf) 컴퓨터의 구조 - 폰 노이만 아키텍쳐 - 사용자가 컴퓨터에 값을 입력하거나 프로그램을 실행하면, 메모리에 저장하고 시작한다고 생각하자. - 선언되는 순간 메모리 특정 영역에 물리적인 공간이 할당된다. - 변수에 값이 할당되고, 해당 값은 메모리에 저장됨. - A=8의 의미는 'A라는 이름을 가진 메모리 주소에 8을 저장하라'라는 말 > 변수 이름 작명법 - 알파벳, 숫자, 언더스코어(_)로 선언 가능 - 변수명은 의미 있는 단어로 표기하.. 2022. 1. 14. 이전 1 ··· 3 4 5 6 7 8 9 ··· 11 다음 반응형