dict(7)
-
numpy에서 dict을 이용해서 값을 바꾸는 방법
특정 배열에서 dict을 이용해서 바꿔야 하는 경우가 있다. 기존에는 바꾸기 위해서 pandas에 replace를 사용하였는데, 이것이 은근 계산 비용이 많이 든다. 그래서 이 부분을 바꾸기 위해서 찾다가 발견한 것이 있어 공유한다. Code def replace_with_dict(ar, dic): # Extract out keys and values k = np.array(list(dic.keys())) v = np.array(list(dic.values())) # Get argsort indices sidx = k.argsort() # Drop the magic bomb with searchsorted to get the corresponding # places for a in keys (using ..
2021.06.06 -
[TIP] Class에 사전(dict)으로 property 추가하는 법
아래 코드는 특정 값들을 바로 propert에 추가하는 코드다 kwargs에 config라는 것이 들어오면, 각각의 값들을 다 property를 해준다. import numpy as np def assign_config(self, kwargs): for key, value in kwargs.items(): setattr(self, key, value) if hasattr(self, 'config'): # print(self.env_config) for key, value in self.config.items(): # Check types based on default settings if hasattr(self, key): if type(getattr(self,key)) == np.ndarray: set..
2020.12.18 -
[Python] dictionary filter
dict에서 value나 key에 따라서 필터링을 하고 싶은 경우에 사용하면 좋을 것 같아서 공유 아래는 key안에 value의 길이가 3 이상인 애들만 추출하기 dict(filter(lambda elem: len(elem[1]) >=3, data.items())) 아래 참고! hello-bryan.tistory.com/77 [Python] Dictionary Filter Dictionary Filter score_dict = { 'sam':23, 'john':30, 'mathew':29, 'riti':27, 'aadi':31, 'sachin':28 } 이런 dictionary 가 있을 때 30점이 넘는 사람만 가지는 dictionary 를 얻고 싶다면, 기본 적으로 for.. hello-bryan.ti..
2020.09.12 -
dict을 txt 저장했을 때 다시 dict으로 만들기
제목이 이상해서 누가 이 글을 볼지는 모르겠지만 공유! 보통 먼가 잘 모아놓은 것을 확인하고 싶으면 .txt나 .json 이 좋은 것 같다. 하지만 나같은 경우에는 반복적으로 쓰는 작업이 진행돼서 아래와 같이 저장을 해야 했다. dict을 string으로 바꿔서 .txt에 계속 저장했다. 그럴 때 아래와 같은 방법으로 하면 돼서 공유한다. with open("./tune_result.txt","r") as f : lines = f.readlines() lines = [line.strip().replace("'","\"") for line in lines] 여기까지 하면 아직은 string이다. 그다음에 .json으로 변환해주면 된다. import json dict_collection = [json.loa..
2020.07.09 -
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 -
[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 ]sklearn Pipeline으로 전처리하고 dict에 저장 후 재사용
내가 모델링을 할 때 다음과 같은 실수를 한 적이 있다. 예를 들어 어떤 데이터를 열심히 전처리를 하고 나서, 모델링을 한다고 했을 때, 보통 모델만 저장하고 전 처리할 때 값을 저장을 안 한 경우가 있다. 그래서 다른 새로운 데이터가 들어왔을 때 다시 전처리 함수를 적용하는 경우가 있는데, 이러면 train과 test로 학습시킨 게 어긋나기 때문에 문제가 생긴다. 그리고 만약 어떤 칼럼에서 특정 값이 train에는 없는데, test에만 있어도 문제가 발생할 것이다. 하지만 이때 test에 있는 것을 가져와야 하는지... 어차피 다 0으로 처리되니까 상관없을 것 같기도 하지만 고민이 되는 사항이다. 아무튼 이번 포스팅은 전처리를 하고 나서 저장해서 어떻게 쓸 수 있을지에 대해 고민해본 것을 써보려고 한다..
2019.08.06