분석 Python(344)
-
[ Python ] 이미지를 gif로 바꾸는 방법
Python 안에서 사진을 gif로 만들고 싶을 때가 있다. 나도 그 부분에 대해서 하고 싶었지만 알지 못했는데, 오늘 다른 코드를 보다가 방법을 알게되서 공유하려고 한다. os.system('convert -delay 15 -loop 0 {0}/posterior_predictive_map_frame*png {0}/posterior_predictive.gif' .format(logdir)) 이런식으로 특정 dir에서 원하는 것만 posterior_predictive_map_frame*png 같이 조건을 줘서 만들어줄 수 있다. Loop에 간단하게 쓸 수 있는 구조라서 좋은 것 같다. 이만!
2019.05.11 -
Multiprocessing pandas package 2개 소개
일단 이전에 내가 하고 싶었던 replace에 대해서 둘다 적용이 되지는 않는 것 같다. ㅠㅠㅠ https://data-newbie.tistory.com/95 multiprocessing으로 pandas replace 하면 더 빠를까? 피드백을 좋아합니다! 머신러닝을 할 때 category 형식은 숫자 형식으로 바꿔줘야 한다. 이럴 때 가장 쉬운 방법은 cat.codes를 사용하면 빠르게 바꿀 수 있다. category["nameDest"].cat.codes 하지만 가끔 이렇.. data-newbie.tistory.com 구조를 잘 못 짠걸수도 있지만 현재 상황은 그렇다. 둘다 progress bar 지원해줌 두 패키지를 소개 하려고 한다. pandas_multiprocess URL pip install..
2019.05.08 -
multiprocessing으로 pandas replace 하면 더 빠를까?
피드백을 좋아합니다! 머신러닝을 할 때 category 형식은 숫자 형식으로 바꿔줘야 한다. 이럴 때 가장 쉬운 방법은 cat.codes를 사용하면 빠르게 바꿀 수 있다. category["nameDest"].cat.codes 하지만 가끔 이렇게 바꾼 코드를 다시 바꿔서 사용해야 할 때가 있다. 저런 식으로 5개짜리 category랑 2722362 같이 엄청나게 많은 숫자가 나오는 것을 알 수 있다. 실제로 여러가지 multiprocessing으로도 테스트를 해보고 그냥 해본 것도 해보니 결론적으로 그냥 한 개씩 하는 것이 내가 했을 때는 빨랐다... 왜 그럴까?.... ㅠㅠㅠ 암튼 다음과 같이 결과물을 공유하려 한다. 버전 1 partition을 나눠서 했을 경우 column 별로 multiproces..
2019.05.08 -
Ridge, Lasso, ElasticNet / train, test, coef 값 내뱉는 multiprocessing 함수 만들기
피드백은 항상 좋아합니다. https://github.com/sungreong/TIL/blob/master/Machine_Learning/Ridge%20%26%20Lasso%20%26%20Elastic%20Multiprocessing.ipynb 숙제로 제출해야 하는 게 있어서 만들어 봤습니다. 기본적으로 loop로 해야 하는 구조여서 적어도 모델 만들어지는 것은 multiprocessing으로 하려고 했는데 오히려 느리게 됐다는... 3가지 버전을 보여주려고 합니다. 1. Loop , 2, 잘못된 버전 3. 잘된 버전 import numpy as np import matplotlib.pyplot as plt from sklearn.linear_model import LinearRegression, Rid..
2019.05.06 -
[변수 생성] 시간 데이터에서 어떤 변수를 새로 만들 수 있을까?
현재 이런 식으로 시간이 관련된 정보가 있다고 하자. 이러한 시간을 다룰 때 나는 아직 경험이 부족해서 막막하게 느껴진다. 머 두시간의 차이를 빼거나 아니면 사람별로 시간을 한개씩 shift(-1) (pandas)를 이용해서 빼서 이동 할 때 시간을 측정해본다던지, 여러가지로 시간을 잘 쓸 수 있을 것 같은데 아직 내공이 부족함을 느낀다. ## 기본적으로 뽑을 수 있는 정보들! * year: 연도 * month: 월 * day: 일 * hour: 시 * minute: 분 * second: 초 * microsecond: 마이크로초(micro seconds, 백만분의 일초) * weekday(): 요일 반환 (0:월, 1:화, 2:수, 3:목, 4:금, 5:토, 6:일) * strftime(): 문자열 반환..
2019.05.06 -
[ Python ] 특정 조건을 만족하는 List 문자열만 뽑기
파이썬 카톡 단체방에 올라온 것이 있는데 , 유용한 것 같아서 공유합니다. 여기서 추가로 debugging package pysnooper도 써서 살을 보탭니다. 1. 어떤 List안에 있는 것을 다 포함하는 경우만 뽑고 싶을 때 어떻게 해야할까? import pysnooper ## 다 있어야 하는 경우 @ pysnooper.snoop() def word_check(word, check) : output = [elem in word for elem in check] return all(output) check = ["a","e","i","o","u"] words = ["abcded", "uoiea", "aaaaaoieoieuu","bcd"] [word for word in words if word_che..
2019.05.04 -
openpyxl을 활용하여 Python에서 엑셀 사용하기
일을 할 때 이제 결과물을 정리하기 위해 csv로 저장했다가 이 결과물을 잘 정리하기 위해 다른 엑셀에다가 붙이는 경우가 있었다. 그때는 R을 이용해서 형태를 최대한 유사하게 만든다음 서식복사를 이용해서 했었는데, 이걸 자동으로 어느정도 맞춰서 하는 방법은 없을까 고민을 하게 되었다. 그래서 openxpyxl , xlsxwriter 같은 패키지가 있는 것을 알게 되었다. 나중에 또 보고서를 만들어야 한다면, 저 2개의 패키지 중 괜찮은 것을 써서 최대한 자동화를 해야겠다! import openpyxl # import BarChart class from openpyxl.chart sub_module from openpyxl.chart import BarChart,Reference # Call a Workb..
2019.05.04 -
tensorflow eager gpu 할당 쓴만큼만 잡게하기.
그냥 돌리게 되면 한 노트북에서 쓰지도 않는 GPU를 다 잡아버린다. 아래 코드를 돌리게 되면 TEST 한다면서 GPU를 다 잡아서 다른 Notebook에서 할당이 안된다. tf.test.is_gpu_available() 그래서 아래와 같은 방법으로 진행하면 된다. 그냥 Session으로 할 때 gpu_option = tf.GPUOptions(allow_growth=True) config = tf.ConfigProto(log_device_placement=False , allow_soft_placement=True, gpu_options=gpu_option) sess = tf.Session(config=config) Eager로 할 때 import tensorflow as tf gpu_option = t..
2019.05.04 -
[ Python ] 중복 되는 배열 해결 하기
만약에 어떠한 길을 가는데, 도중 도중에 중복되는 것이 있다고 하자. 다음과 같이 어떻게 하면 만들 수 있을까? path = ["a","b","c","d","a","a","c","e","e", "o","e","a","a","b","b"] --> ['a', 'b', 'c', 'd', 'a', 'c', 'e', 'o', 'e', 'a', 'b'] 정답은! def dup_path_delete(path) : path_dir = [] for i, j in enumerate(path) : if i == 0 : path_dir.append(j) elif j != path[i-1] : path_dir.append(j) else : pass return path_dir path = ["a","b","c","d","a",..
2019.05.03 -
[ Python ] pysnooper 을 활용한 debug 하기
** 유용하셨다면 공감버튼 한번씩 눌러주세요** pip install pysnooper import pysnooper ## 해당 함수 debug 할 때 앞에 error check : 가 붙어서 나온다. @ pysnooper.snoop (prefix = 'error check : ' ) def plus_with_power (a, b , d) : a = a * a b = b * b b = b + d c = a + b return c command 창에 mkdir를 사용해서 my 폴더 안에 log를 만든다. (아무거나 원하는 이름 하면 된다.) @ pysnooper.snoop( '/my/log/file.log' ) def plus_with_power (a, b , d) : a = a * a b = b * b ..
2019.05.02 -
[ Python ] Jupyter에서 multiprocessing을 활용하여 bash 돌리기
** 유용하셨다면 공감버튼 한번씩 눌러주세요** import os , re , time import numpy as np from multiprocessing import Pool path = "/home/advice/Python/SR/" DIR = os.listdir(path) ## 원하는 Scripy ~.py를 찾기 dir2 = [ path + i for i in DIR if re.search("BayesOpt", i)] curr_path = os.getcwd() +"/" + str(date.today()) ## 폴더 추가 if not os.path.exists(curr_path): os.makedirs(curr_path) ## .sh 파일 여러개 생성하기 for idx , i in enumerate..
2019.05.01 -
Pandas에서 보는 옵션 설정하는 방법
도움이 되셨다면, 광고 한번만 눌러주세요. 블로그 관리에 큰 힘이 됩니다 ^^ from IPython.core.display import display, HTML ## 전체 구간을 넓게 display(HTML("")) ## 각 컬럼 width 최대로 pd.set_option('display.max_colwidth', -1) ## rows 500 pd.set_option('display.max_rows', 500) ## columns pd.set_option('display.max_columns', 500) pd.set_option('display.width', 1000)
2019.05.01