NumPy.npy与pandas DataFrame

本文探讨了CSV文件格式的存储效率,并通过实例比较了NumPy.npy和pandas DataFrame的存储效率。NumPy.npy文件的大小仅为CSV文件的三分之一左右。此外,还介绍了Python的pickle模块用于序列化和反序列化数据,展示了如何将DataFrame保存为pickle对象并重新加载。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

用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",getsize(tmpf.name))
Size .npy file 11760

.npy文件的大小只有CSV文件的三分之一左右。实际上,利用Python可以存储任意复杂的数据结构。也可以序列化格式来存储pandas的DataFrame或者Series数
### 打开 `pkl` 和 `npy` 文件的方法 #### 使用 Python 打开 `.pkl` 文件 `.pkl` 是一种通过 Python 的 `pickle` 模块序列化后的二进制文件格式。要加载该文件中的数据,可以按照以下方式操作: ```python import pickle # 加载 .pkl 文件 with open('example.pkl', 'rb') as file: data = pickle.load(file) print(data) ``` 上述代码片段展示了如何使用 `pickle.load()` 函数来反序列化存储在 `.pkl` 文件中的对象[^2]。 #### 使用 Python 打开 `.npy` 文件 `.npy` 是 NumPy 提供的一种用于高效存储数组的二进制文件格式。可以通过 NumPy 库轻松加载这些文件的内容: ```python import numpy as np # 加载 .npy 文件 data = np.load('example.npy') print(data) ``` 此代码利用了 `numpy.load()` 方法,能够快速恢复之前保存到磁盘上的 NumPy 数组[^1]。 --- ### 数据转换实例:从 `.npy` 转换为 CSV 格式 如果希望进一步处理 `.npy` 中的数据并将其导出为更通用的 CSV 文件,则可采用如下流程实现这一目标: ```python import numpy as np import pandas as pd # Step 1: Load the .npy file into a NumPy array. np_data = np.load('your_file.npy') # Step 2: Convert the NumPy array to a Pandas DataFrame. df = pd.DataFrame(np_data) # Step 3: Save the DataFrame as a CSV file. df.to_csv('output.csv', index=False) ``` 这里先调用了 `numpy.load()` 来获取原始数据阵列;接着创建了一个基于它的 Pandas 表格结构以便于后续分析或者分享给其他不支持 NumPy 的软件环境。 对于 `.pkl` 文件转存成 CSV 类似地也需要先把内部的对象解析出来再决定怎样适配至表格形式输出。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值