NumPy.npy与pandas DataFrame

本文探讨了CSV文件格式的存储效率,并通过实例比较了NumPy.npy和pandas DataFrame的存储效率。NumPy.npy文件的大小仅为CSV文件的三分之一左右。此外,还介绍了Python的pickle模块用于序列化和反序列化数据,展示了如何将DataFrame保存为pickle对象并重新加载。
摘要由CSDN通过智能技术生成
用CSV格式来保存文件是个不错的主意,因为大部分程序设计语言和应用程序都能处理这种格式,所以交流起来非常方便。然而这种格式的存储效率不是很高,原因是CSV及其他纯文本格式中含有大量空白符;而后来发明的一些文件格式,如zip、bzip和gzip等,压缩率则有了显著提升

首先导入模块:
In [1]: import numpy as np

In [2]: import pandas as pd

In [3]: from tempfile import NamedTemporaryFile

In [4]: from os.path import getsize

这里我们将使用Python标准的NamedTemporaryFile来存储数据,这些临时文件随后会自动删除。
接下来获取CSV文件格式的大小:
In [5]: np.random.seed(42)

In [6]: a = np.random.randn(365,4)

In [7]: tmpf = NamedTemporaryFile()

In [8]: np.savetxt(tmpf,a,delimiter=',')

In [9]: print("Size CSV file",getsize(tmpf.name))
Size CSV file 36693

下面首先以NumPy.npy格式来保存该数组,随后载入内存,并检查数组的形状以及.npy文件的大小:
In [10]: tmpf = NamedTemporaryFile()

In [11]: np.save(tmpf,a)

In [12]: tmpf.seek(0)
Out[12]: 0

In [13]: loaded = np.load(tmpf)

In [14]: print("Shape",loaded.shape)
Shape (365, 4)

In [15]: print("Size .npy file"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值