Python(215)
-
python dict(사전) 초기화하기
파이썬 dictionay를 기존에 있던 리스트로 다시 초기화를 하고자할 때, 유용한 방법이 있어서 공유한다. dict_ = {"a": [], "b" :[], "c" : []} for i in np.random.randint(0,3,size=10) : if i == 0 : dict_["a"].append(np.random.rand(1)) elif i == 1 : dict_["b"].append(np.random.rand(1)) else : dict_["c"].append(np.random.rand(1)) dict_ ## 초기화하기 dict_.update({}.fromkeys(dict_, [])) 이런 방식으로 안에 있는 값을 다시 비어있는 리스트로 초기화 할 수 있다!
2020.06.27 -
chapter 4 Dynamic Programming Example 도박사 문제
광고 한 번씩 눌러주세요! 블로그 운영에 큰 힘이 됩니다 :) 2020/05/01 - [관심있는 주제/RL] - 강화학습 - Dynamic Programming 공부 2020/05/05 - [관심있는 주제/RL] - chapter 4 Dynamic Programming Example Grid World 2020/05/05 - [관심있는 주제/RL] - chapter 4 Dynamic Programming Example Car Rental (in-place) 2020/05/05 - [관심있는 주제/RL] - chapter 4 Dynamic Programming Example 도박사 문제 문제 정의¶ 한 도박사가 연속된 동전 던지기의 결과를 맞추는 내기를 할 기회를 얻 게 된다. 동전의 앞면이 나오면 도박사..
2020.05.05 -
chapter 4 Dynamic Programming Example Car Rental (in-place)
2020/05/01 - [관심있는 주제/RL] - 강화학습 - Dynamic Programming 공부 2020/05/05 - [관심있는 주제/RL] - chapter 4 Dynamic Programming Example Grid World 2020/05/05 - [관심있는 주제/RL] - chapter 4 Dynamic Programming Example Car Rental (in-place) 2020/05/05 - [관심있는 주제/RL] - chapter 4 Dynamic Programming Example 도박사 문제 import matplotlib import matplotlib.pyplot as plt import numpy as np import seaborn as sns from scipy...
2020.05.05 -
jupyter notebook 개별 메모리 사용량 확인하는 방법
광고 한 번씩 눌러주세요! 블로그 운영에 큰 힘이 됩니다 :) memory_profiler를 설치하면 됨. !pip install memory_profiler magic 함수로 확인하는 방법 %load_ext memory_profiler %memit 패키지로 확인하는 방법 from memory_profiler import memory_usage mem_usage = memory_usage(-1, interval=1, timeout=1) print(mem_usage) https://data-newbie.tistory.com/312?category=772752 Jupyter Notebook에서 Notebook 이름 가져오기 가끔 주피터 노트북 이름을 가져와서 먼가 활용하고 싶을 때가 있다. 그래서 찾아보니 ..
2020.04.28 -
파이썬 상위,하위,특정 디렉토리에 있는 패키지 임포트하기(import)
광고 한 번씩 눌러주세요! 블로그 운영에 큰 힘이 됩니다 :) 하위 디렉터리에서 import 하기 특정 폴더 안에 파일을 넣어놓았다고 하자. 이때 폴더 이름에 얽매이지 않고 안에 있는 패키지를 쓰고 싶다고 해보자. 예를 들어 폴더 이름이 test_folder 이든 test_folder2이든 안에 있는 check.py , check2.py를 쓰고 싶다고 하자. 이럴 때는 일단 __init__. py를 추가하면 된다. 그냥 저 파일만 생성을 해주면 된다. 이제 상위 디렉토리에 있는 주피터 노트북으로 하위 디렉터리 test_folder2에 있는 check.py를 사용해보자 test_folder2에 있는 check에서 method를 import 할 때 check2.py에 있는 것도 같이 임포트 시킨 것을 확인하..
2020.04.25 -
[변수 선택] Boruta 와 Lightgbm(rf)을 사용
광고 한 번씩 눌러주세요! 블로그 운영에 큰 힘이 됩니다 :) Boruta는 RandomForest를 사용하여 변수 선택을 하는 함수이다. 하지만 파이썬에서 흔히 알고 있는 sklearn에서는 범주형에 대한 처리를 해주지 않는다. 그래서 Lightgbm은 범주형 변수를 처리할 수 있고 boosting_type을 rf로 하면 가능하다고 생각하여 시작하였다. 하지만 지금 현재 Python 버전의 Boruta는 sklearn에 굉장히 특화돼서 만들어졌다. 그래서 실제로 연속형 변수만 있으면 sklearn에 있는 패키지를 사용하면 되지만, 만약 범주형 변수를 쓴다고 하면 별로 안 좋을 것 같다. 일단 간략하게 Boruta의 큰 아이디어는 2가지다. The first idea: shadow features 일단 ..
2020.04.24 -
BLiTZ — A Bayesian Neural Network LSTM 으로 주가 예측 해보기
광고 한 번씩 눌러주세요! 블로그 운영에 큰 힘이 됩니다 :) 이번엔 BLiTZ 개발자가 LSTM을 베이지안 뉴럴 네트워크로 구현해줬다. 요즘 LSTM 쪽을 공부하고 있는데, 또 하나의 선택지로 고민해볼 만한 것 같아서 해보기로 했다. BLiTZ 개발자는 종가 데이터만을 넣고 하루 뒤 종가를 예측하는 것을 예제로 보여줬고, 필자는 'Open', 'High', 'Low', 'Close', 'Volume' 총 5가지 input을 주고 하루 뒤 Close를 예측하는 것을 해봤다. 우리가 알고 있는 LSTM의 형태이다. 여기서 W,Bias를 determinstic 하게 사용하지 않고 분포에서 샘플링으로 하는 것이 이 패키지의 베이지안 방법이다. ## Data Normalizing scaler = Standard..
2020.04.19 -
seaborn layout 동적으로 만드는 방법 소개
python에서는 시각화를 할 때 이쁘게 그려주는 seaborn을 많이들 사용한다. seaborn을 사용할 때 subplot을 어떻게 주면 좋을지에 대해서 발견한 코드를 공유한다. import seaborn as sns import pandas as pd titanic = pd.read_csv("./../DATA/train.csv") titanic.head() 아래 코드에서는 컬럼을 몇 열로 할지만 정해주면 동적으로 행을 채워준다. categorical_vars = ['Survived','Pclass','Sex','SibSp','Parch','Cabin','Embarked'] num_plots = len(categorical_vars) total_cols = 3 total_rows = num_plots/..
2020.04.19 -
[Python] 규칙이 있는 영어 한글 패턴 분리해보기
영단어를 복사해서 표로 만들고 싶었는데, 아래 그림과 같은 형태로 복사되었다. 그래서 바로 엑셀에 붙여 넣기를 하니 오른쪽 그림처럼 되었다. ㅠㅠ 그래서 내가 할 줄 아는 것은 파이썬하고 R뿐인데, 그중 요즘은 파이썬을 많이 사용하니 파이썬으로 분리해보기로 했다. 다행히 저기 글에는 패턴이 있었다. 바로 [영어~~] [한글, 영어 기타] 같은 형태로 되어 있었다. 그래서 저 [영어] [한글,영어] 을 하는 저 중간에 인덱스값만 안다면 분리할 수 있다는 것을 알았다. 그래서 코드는 다음과 같다. 일단 읽어들이고 중간에 \n 을 제거해보자. import re f = open("./영어_한글_혼합.txt","r") lines = f.readlines() 공백제거 = [line for line in lines ..
2020.04.12 -
[Python] dict 에서 RuntimeError: dictionary changed size during iteration 해결하는 방법
현재 하고자 하는 것은 다음과 같다. 사용하지 않는 키는 지워버리고 싶다. 사용하지 않는 것을 확인하는 방법은 키에 해당하는 값이 None이면 제거하려고 했다. 하지만 Loop 도중에 key를 제거하려다 보니 에러가 발생했다. 그래서 나중에도 이러한 상황을 다시 겪을 수 있으니 정리를 해놓는다. 해결 방법은 다음과 같다. ## 1 값에서 제거하고자 하는 경우 for key , type_ck in list(current_dict.items()) : ## list , items를 꼭 써야함. if type(type_ck) != dict : del current_dict[key] ## 지우고자 하는 키를 알경우 remove_key = ['Category', 'NewVar'] for key in list(cur..
2020.04.11 -
[Python] self 에 대해서 알아보기 (__init__ , __new__)
광고 한 번씩 눌러주세요! 블로그 운영에 큰 힘이 됩니다 :) class Person: def __init__(self, name, age): self.name = name self.age = age def greet(self, other): print(f'{self.name} says hello to {other}.') Person instance object가 어떻게 생성되는지에 대한 예시가 있다. person = Person('John Smith', 25) print(person.__dict__) `__dict__` 속성을 호출하면, 객체 `person`에는 `name` 과 `age`가 있다. What’s self in the __init__() method? 이 글 참고 person.greet('..
2020.04.09 -
Matplotlib 한글폰트 사용하는 전체 또는 개별 적용하는 방법
나눔 고딕이 설치되어있다는 가정하에 진행한 것입니다. import matplotlib as mpl import matplotlib.pyplot as plt print ('설정 파일 위치: ', mpl.matplotlib_fname()) import matplotlib.font_manager as fm f = [f.name for f in fm.fontManager.ttflist] [(f.name, f.fname) for f in fm.fontManager.ttflist if 'Nanum' in f.name] 일단 설치가 되어있다는 가정하에, 모든 노트북에 적용하고 싶으면 위에 설정 파일 위치에 가서 수정해야 함. 만약 모든 노트북에 적용하고 싶다면? rcParams를 설정 파일에 직접 적어주면 모든 노트..
2020.04.03