用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"
NumPy.npy与pandas DataFrame
最新推荐文章于 2024-10-06 06:29:22 发布
本文探讨了CSV文件格式的存储效率,并通过实例比较了NumPy.npy和pandas DataFrame的存储效率。NumPy.npy文件的大小仅为CSV文件的三分之一左右。此外,还介绍了Python的pickle模块用于序列化和反序列化数据,展示了如何将DataFrame保存为pickle对象并重新加载。
摘要由CSDN通过智能技术生成