Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 3줄 논문
- 파이썬
- TEAM-EDA
- 협업필터링
- Semantic Segmentation
- MySQL
- 한빛미디어
- 입문
- Machine Learning Advanced
- Segmentation
- pytorch
- 엘리스
- 추천시스템
- 알고리즘
- 나는리뷰어다
- DFS
- eda
- TEAM EDA
- Python
- 튜토리얼
- Recsys-KR
- Image Segmentation
- hackerrank
- DilatedNet
- 나는 리뷰어다
- 프로그래머스
- 코딩테스트
- 스택
- 큐
- Object Detection
Archives
- Today
- Total
TEAM EDA
파이썬 메모리 줄이는 코드 (정형데이터) 본문
파이썬에서 데이터 프레임의 메모리를 줄여주는 코드
def reduce_mem_usage(df):
""" iterate through all the columns of a dataframe and modify the data type
to reduce memory usage.
"""
start_mem = df.memory_usage().sum() / 1024**2
# print('Memory usage of dataframe is {:.2f} MB'.format(start_mem))
cols = [c for c in df.columns if c not in ['log_date', 'date', 'etc_str2']]
for col in cols:
# print("#" * 50)
# print(col, "의 작업을 시작합니다.")
col_type = df[col].dtype
if col_type != object:
c_min = df[col].min()
c_max = df[col].max()
if str(col_type)[:3] == 'int':
if c_min > np.iinfo(np.int8).min and c_max < np.iinfo(np.int8).max:
df[col] = df[col].astype(np.int8)
elif c_min > np.iinfo(np.int16).min and c_max < np.iinfo(np.int16).max:
df[col] = df[col].astype(np.int16)
elif c_min > np.iinfo(np.int32).min and c_max < np.iinfo(np.int32).max:
df[col] = df[col].astype(np.int32)
elif c_min > np.iinfo(np.int64).min and c_max < np.iinfo(np.int64).max:
df[col] = df[col].astype(np.int64)
else:
if c_min > np.finfo(np.float16).min and c_max < np.finfo(np.float16).max:
df[col] = df[col].astype(np.float16)
elif c_min > np.finfo(np.float32).min and c_max < np.finfo(np.float32).max:
df[col] = df[col].astype(np.float32)
else:
df[col] = df[col].astype(np.float64)
end_mem = df.memory_usage().sum() / 1024**2
# print('Memory usage after optimization is: {:.2f} MB'.format(end_mem))
# print('Decreased by {:.1f}%'.format(100 * (start_mem - end_mem) / start_mem))
return df
data = reduce_mem_usage(data)
'EDA Study > 코드' 카테고리의 다른 글
2차원 리스트의 Transpose 구하기 (0) | 2020.12.29 |
---|---|
2차원의 배열을 1차원의 배열로 바꾸는 코드 (0) | 2020.12.28 |
구글 드라이브의 이미지 외부링크 추출 (0) | 2020.12.27 |
파이썬 시드 고정 (0) | 2020.12.25 |
파이썬 경고 무시 (0) | 2020.12.25 |