功能:把高精度的float或者int数据,按照样本中数据的范围(min,max)进行压缩
# 处理前 数据集总内存计算
start_mem = df.memory_usage().sum() / 1024**2
print('Memory usage of dataframe is {:.2f} MB'.format(start_mem))
处理int类型
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).

这段代码实现了一个功能,即根据数据范围(min,max)压缩DataFrame中的高精度float或int数据,以降低内存使用。首先计算处理前数据集的总内存,然后遍历每一列,对int类型的数据进行int8、int16、int32或int64的精度转换,对float类型的数据进行float16、float32或float64的精度转换。最后,处理后的数据集内存使用情况也会被打印出来。
最低0.47元/天 解锁文章
555

被折叠的 条评论
为什么被折叠?



