파이썬 11

파이썬 클린 코드 (2) - 파이썬스러운 코드 (1/2)

요즘 파이썬 클린코드(마리아노 아나야 지음) 라는 책을 읽고 있다. 한 챕터씩, 책을 읽으며 내가 이해한 대로 요약 및 정리를 해보도록 하겠다. 목차 1. '파이썬' 스러운 코드란? 2. 파이썬스러운 코드 1 - 인덱스와 슬라이스 2-1. 슬라이스(slice)의 동작 원리 2-2. 자체 시퀀스를 생성하는 방법 3. 파이썬스러운 코드 2 - 컨텍스트 관리자 3-1. 파이썬 스러운 방법으로 컨텍스트 관리자 구현 방법 (1) with 3-2. 파이썬 스러운 방법으로 컨텍스트 관리자 구현 방법 (2) __enter__, __exit__ 매직 메소드 구현 3-3. 파이썬 스러운 방법으로 컨텍스트 관리자 구현 방법 (3) decorator 활용 1.' 파이썬'스러운 코드란? 모든 언어는 해당 언어로 작업을 처리하는..

파이썬 클린코드 (1) - 코드 포매팅과 도구

요즘 파이썬 클린코드(마리아노 아나야 지음) 라는 책을 읽고 있다. 한 챕터씩, 책을 읽으며 내가 이해한 대로 요약 및 정리를 해보도록 하겠다. 목차 1. 클린코드란? 1-1. 클린코드의 중요성 1-2. 클린코드를 위한 코드 포맷팅 2. 클린 코드를 위한 방법 - 문서화 2-1. Docstring 2-2. Annotation 3. Annotation은 Docstring을 대체하는 것일까? 4. 클린 코드를 위한 방법 - 도구 설정 5. 1장 요약 1. 클린코드란? 코딩 표준, 포맷팅, 린팅 도구나 다른 검사 도구를 사용한 코드 레이아웃 설정과 같은 것 그 이상을 의미한다. 즉, 품질 좋은 소프트웨어를 개발하기 위해 견고하고 유지보수가 쉬운 시스템을 만들기 위한 요소다. 1-1. 클린코드의 중요성 소프트웨..

Python 클린 코드(Clean Code) 작성 방법 정리 및 고찰 (1)

더 나은 파이썬 코드를 작성하기 위한 11가지 팁과 요령이라는 유튜브를 시청했다. 시청한 내용에 대해서 정리를 해보고자 한다. 1. range(len(x)) 를 enumerate 로 변경하자. 만약 idx와 item 으로 모두 추적할 경우, enumerate 를 사용하는 것이 간결하고 좋다. range를 쓰면 len 함수를 추가로 불러와야 하고, 각 원소의 자료구조의 인덱스로 직접 접근해야 한다. 하지만 enumerate는 인덱스와 item을 하나의 튜플 단위로 묶어 출력하기 때문에, 훨씬 pythonic 하다. 변경 전 코드 data = [1,2,3,4] for i in range(len(data)): if data[i]

Kafka Consumer 애플리케이션 개발 - Python (Local Server 기반)

해당 프로젝트는 로컬 서버를 기반으로 카프카 프로듀서 애플리케이션을 개발하는 프로젝트에 대한 포스팅이다. 컨플루언트 기반 클러스터에서 카프카를 실행하기 전, 카프카의 동작 원리를 이해하기 위해 로컬에 직접 설치 및 실행해보았다. 목차 Python Consumer 개발 01. Python Consumer 개발 1-1. 개요 앞선 포스팅에서, 카프카를 로컬에 설치하는 방법 그리고 해당 로컬에서 카프카, 주키퍼 서버를 띄우는 방법에 대해 알아보았다. 그리고 kafka-python을 이용해 카프카 프로듀서를 띄워보았다. 이전 포스팅 링크 https://eng-sohee.tistory.com/136 Local Server 기반, Kafka Producer 애플리케이션 개발 - Python 해당 프로젝트는 로컬 서..

05. 데이터 시각화

파이썬에서 데이터를 시각화하는 방법은 여러 방법이 존재한다. 우선, 라이브러리도 seaborn 이나 matplotlib 와 같은 대표적 시각화 툴이 있고, 아니면 shap이나 pdp와 같이, 모델링 이후 시각화를 할 때 사용하는 라이브러리 등이 존재한다. 오늘은 다양한 라이브러리들 중, 가장 범용적으로 사용하는 seaborn과 matplotlib 정리를 해 보았다. 히트맵, box플롯, scatter플롯, FacetGrid 차트 등 자주 사용하는 차트들을 살펴 보겠다. 막대 그래프 등은 너무 단순해서 이번 포스팅에서는 취급하지 않았지만, 추후 모델링 시 포스팅 할 예정이다. 또한 pdp나 shap 과 같은 시각화 라이브러리는, 자주 사용하지는 않으므로 이번 포스팅에서 다루지 않는다. 그러나 이후 모델 분..

04. String Manipulation

String Manipulation이란, 문자열 데이터 형태 및 타입 등을 변환하는 것 오늘은 파이썬을 활용해 String Manipulation을 수행해 볼 것이다. 이는 데이터 분석 수행에서 필수적으로 행하는 것 중 하나다. String 데이터를 처리할 때는, 웬만해선 데이터 통일화 작업이 요해지기 때문이다. 그 중에서도 SM에 가장 많이 쓰이는 함수(Replace, Apply, Split)를 이용해 문자열 데이터의 형태 & 타입을 변환하는 예시를 학습/정리할 예정이다. 목차 특정 데이터타입의 컬럼값만 추출하여, 데이터 형태 및 타입 변경 describe를 통한 summary statistics In [ ]: # 필요한 라이브러리를 import 합니다. import pandas as pd import..

07. 파이썬을 활용한 문제해결

오늘은 파이썬을 활용한 문제 해결 방법을 간단히 살펴보고자 한다. 앞서 내가 주로 사용하는 파이썬 언어는 어떤 언어인지 살펴볼 것이다. 목차 정규표현식(=정규식) 얕은 복사와 깊은 복사 파이썬 01. 정규표현식(=정규식) 정규표현식이란, 특정한 규칙을 가진 문자열의 집합을 사용하는 데에 표현하는 언어다. 주로 복잡한 문자열을 처리할 때 사용한다. 정규표현식의 예시는 무엇이 있을까? 예를 들어, 주민등록번호 뒷자리 7자리를 별표(*) 처리하고 싶다고 할 때, 정규표현식을 사용한다면 보다 간편하고 직관적인 코드를 짤 수 있다. 정규표현식의 더 많은 예시로는, 아래 링크를 걸어두도록 하겠다. https://wikidocs.net/1642 파이썬에서는 이런 정규표현식을 re 모듈로 지원하는데, 딥러닝(텍스트마이..

06. 프로그래밍과 문제해결_내장 메소드

파이썬이랑 알고리즘, 자료구조는 생산을 위한 도구라고 보면 된다. 자료구조와 알고리즘 챕터에서는, 무엇보다 복잡한 문제를 작은 문제로 분할하면서 해결한다라는 아이디어를 갖고 있어야 한다. 문제를 보았을 때, 문제가 어떤 패턴을 갖고 있는지 생각해본 뒤, 작은 문제로 분할해 문제를 풀어보는 과정을 반복해 수행한다고 보면 된다. 자료구조란, 우리가 데이터를 사용함에 있어서, 어떻게 데이터를 저장하고 사용할 지 정의하는 과정이다. 이는 데이터의 효율적인 접근을 목적으로 한다. 데이터를 쉽게 찾기 위해서는 특정 구조로 데이터를 저장해주어야 한다. 알고리즘이란, 문제를 해결하기 위한 단계적 절차를 정의한 것이다. 따라서, 우리는 문제해결능력과 컴퓨팅 사고능력(수학 개념을 컴퓨터로 잘 옮겨내는 능력)을 키워 자료구..

05. map 에러 해결 방법

목차 Map Map 에러발생 01. Map Map은 파이썬의 내장함수로, 리스트의 요소를 지정된 함수로 처리해주는 함수다. 이는 매우 자주 사용되며, 예시는 아래와 같다. 그런데, 사실 내가 map을 설명하는 이유는 아래 에러설명을 위해서다. (내가 자주 까먹기 때문에...!)예시(아래)와 같이 코드를 작성하면 TypeError가 발생한다. 02. Map 에러발생 ⚠️ TypeError: map() must have at least two arguments. 2-1. 에러발생코드 def solution(num): num_square = list(map(lambda x: x*x, num) ) print(num_square) answer=[] for i in num_square: if i % 2 == 0: ..

01. 프로그래밍 언어 이해하기

무엇이든, 기본이 제일 중요하다. 기본 개념을 제대로 숙지하고 있어야, 새로운 개념을 소화하는 데에 어려움이 없다고 믿는다. 따라서 CS기초지식부터 심화개념까지, 다시 한 번 되짚어보고자 한다. 오늘은 기본적인 프로그래밍 언어를 이해해보고, 분류 기준은 어떻게 정의할 수 있을지 탐색해 볼 것이다. 목차 프로그램과 프로그래밍 언어 프로그래밍 언어의 분류 기준 프로그래밍 언어의 흐름 01. 프로그램과 프로그래밍 언어 음식점을 갔을 때를 떠올려보자. 우리가 키오스크를 통해 주문을 했을 때, 주문서는 주방장에게로 향한다. 주방장은 그 주문서를 읽고 '내가 명령한 주문서'대로 조리를 행한다. 여기에서, 컴퓨터는 주방장을 / 프로그램은 키오스크 주문서를 / 프로그래밍언어는 주문서에 적힌 언어종류를 뜻한다. 즉, 프..