본문 바로가기

Study doc./Python

(10)
[Python] 예외 처리 - 아이디 만들기 구현 안녕하세요. 오늘은 간단하게 예외처리(try, except) 문법을 이용해서 간단한 예제를 만들어보았습니다. 개념공부만 하는 것보다는 직접 해봐야 머리 속에 잘 들어오더라구요! 그래서 이런 예외 처리를 실무에서는 어떻게 사용할지 한번 생각해보고 간단하게 구현해봤습니다. (물론 실무에서는 이렇게 사용하지 않겠죠..?) 제가 생각해본 예제의 목표는 다음과 같습니다. 아이디를 만들기 위해 input 값을 사용자로부터 받을 것 대문자가 포함된 아이디는 에러를 발생시킬 것 특수문자가 포함된 아이디는 에러를 발생시킬 것 사용 가능한 아이디를 입력할때까지 자동 반복될 것 그럼 시작해볼까요!! 먼저 사용자 정의 에러 클래스를 만들었습니다. 처음부터 모든 코드를 작성하는 방법보다, 기존 클래스를 상속받아 함수를 수정하는..
[Python] 모듈 사용법, pip의 원리 지난 포스팅에서 비슷한 코드의 작성을 피하기 위해 클래스가 필요하다고 했습니다. 오늘은 이 클래스를 파일로 저장하고, 필요할 때마다 호출해서 사용하는 방법을 공부해보겠습니다. 클래스와 함수들을 모아둔 파일(.py)을 모듈이라고 합니다. 코딩을 시작하기 전 import numpy as np 혹은 import pandas as pd 를 작성해본 적 있으시죠? 이게 쉽게 말하면 내 컴퓨터에 저장되어 있는 numpy.py 라는 파일과 pandas.py 라는 파일을 호출하는 것입니다. 나는 컴퓨터에 그런 파일을 저장한 적이 없으시다구요? numpy와 pandas의 경우에는 아주 기본적인 모듈이기 때문에 파이썬을 설치하면 자동으로 컴퓨터 저장됩니다. 그래서 따로 저장할 필요가 없었던거죠. 새로운 모듈의 경우에는 별..
[Python] 파이썬 클래스, 이거 한 번만 읽어봐! Q. 야, 클래스가 뭐야? 왜 필요해? A. 썼던 내용들 반복 안하려고! 미리 정의해두고 필요할 때만 호출해서 쓰려고! Q. 그럼 그냥 함수를 만들어서 쓰면 되잖아!! A. 맞아, 근데 클래스가 함수들을 모아둔거야! 머신러닝 알고리즘 써봤어? 로지스틱 알고리즘 사용할 때 model = LogisticRegression() 쓴거 기억나? 이게 사실은 LogisticRegression 이라는 클래스를 호출해서 model이라는 객체에 넣은거야. 그리고 model.fit(X_train, y_train) 했었지? 여기서 fit이 LogisticRegression 클래스 안에 있던 하나의 함수였던거지! Q. 야, 어떤 사람이 클래스 쓴거 봤는데 init이랑 양옆에 underbar( __ )랑 self랑 처음 보는 ..
[Python] os, pathlib, pickle 더 이상 모르는척 하지 말자 컴피티션의 상위권 커널을 보면 항상 등장하는 os,pathlib, pickle 모듈!! 경로를 지정해주는 것 같은데, 운영체제니 뭐니 이름부터 거부감들고 어려워보여서 여태 모르는척 했습니다. 하지만 딥러닝을 공부하고 있는 요즘,, 더이상 피할수가 없더라구요,, 그래서 한 번 해보자!! 하고 공부하고 정리해봤습니다. 모듈에 있는 모든 문법을 다뤄보려했으나, 다른 블로거 분들이 너무 설명을 잘해두셔서 저는 가장 많이 쓰이는 문법들에 대해서 간단하게 정리했습니다. 그리고 추후에 여러 커널들을 공부하며 해당 모듈들을 잘 활용한 사례가 있다면 내용을 계속해서 추가하도록 하겠습니다. 순서 os pathlib pickle 1. os os(operating system)는 운영체제 라고 합니다. (저는 운영체제로 wi..
[Python] 알고 써라!! 판다스(Pandas) * 해당 포스팅은 파이썬 머신러닝 완벽 가이드(권철민, 2019) 교재를 참고하여 공부하며 작성한 글입니다. 안녕하세요!! 지난번에는 넘파이(Numpy) 패키지에 대해서 공부했습니다. 만약 넘파이에 대해 잘 모르신다면 이전 포스팅을 먼저 읽어보고 오시는 것을 추천드립니다. 오늘은 파이썬에서 넘파이와 더불어 정말 많이 사용되는 "판다스(Pandas) 패키지"에 대해서 공부해보겠습니다. 넘파이 패키지가 1차원 배열의 처리를 도왔다면, 판다스 패키지는 2차원 이상의 데이터 처리를 돕는다고 할 수 있습니다. 역시 딱딱한 설명으로는 잘 와닿지가 않죠? 천천히 생각해봅시다. 사실 우리는 알게 모르게 판다스를 많이 사용해왔습니다. 로컬 저장소에 있는 파일을 가져올때, 가져온 데이터를 전처리 할 때(ex. 결측치 처리..
[Python] 알고 써라!! 넘파이(Numpy) * 해당 포스팅은 파이썬 머신러닝 완벽가이드(권철민, 2019) 교재를 참고하여 공부하며 작성한 글 입니다. 안녕하세요!! 오늘은 파이썬 머신러닝에서 정말 많이 사용되는 패키지 중 하나인 "넘파이(Numpy) 패키지" 에 대해서 정리해보겠습니다. 보통 머신러닝 책의 도입부에서 많이 설명되는 개념이기 때문에 머신러닝 입문자 분들이라면 이미 많이 보셨을테지만, 정확한 개념을 몰라도 코드를 짜는데 아무 문제가 없기 때문에 대충 훑어보고 넘어가는 경우가 많은것 같습니다. 하지만 이쪽 분야를 공부하면 공부할수록 기본기의 중요성에 대해 깨닫게 되고, 이런 기본기가 없으면 난잡하고 불필요한 코드를 짜는데에 많은 시간을 소비하던 저의 경험을 바탕으로 기본기 공부를 시작하게 되었습니다. 처음부터 천천히 읽어보시면서 왜 ..
[Python] logloss가 뭐야? 바로 예시로 시작하겠습니다. A와 B가 약 1km 거리에 있는 사람의 성별을 맞추는 내기를 한다고 가정하겠습니다. 눈이 좋은 A는 99%의 확신을 가지고 남자라고 했습니다. 눈이 좋지 않은 B는 50%의 확률로 남자라고 말했습니다. 그럼 결과는 무승부인가요? A는 99%의 확률을 가지고 맞췄기 때문에 본인이 이겼다고 주장합니다. 이런 논리로 나온게 logloss 입니다. 다른 예시를 들어보겠습니다. 분류 예측 모델 경진대회에서 남성과 여성을 분류하는 문제가 있을 때, 대회 주최자는 '운이 좋아서 맞춘 사람'과 '실력이 좋아서 맞춘 사람'을 구분하고 싶을 겁니다. 그렇기 때문에 예측한 결과값과 더불어서 모델이 그 값에 얼마나 확신하는지도 확인할 것입니다. 이 사람이 0.2의 확률로 1을 예측했는지 0.9의..
[Python] iloc vs loc ■ iloc 숫자(integer position)로 접근 예시) data.iloc[:,:3] - 특정 순서의 열을 인덱싱 할 때 data.iloc[:,[2,5,-1]] # -1은 마지막 열 ■ loc 문자(label)로 접근 예시) - 행과 열 모두 인덱싱 한 경우 pd.concat([target,weather_mean],axis=1).corr().loc['smp_max':'supply','area':] - 특정 열을 선택한 경우 daily_price_oil.loc[:,['date','mean']] - 열의 특정 범위를 선택한 경우 weather.loc[:,'area':'temp'] 결론 인덱싱을 숫자로 할지, 문자로 할지 차이였다.