作为数据科学家, 你将使用字典, DataFrames或任何其他数据类型形式的数据集。与这些对象一起使用时, 你可能需要将它们保存到文件中, 以便以后可以使用它们或将其发送给其他人。这就是Python的pickle模块的用途:它将对象序列化, 以便可以将它们保存到文件中, 然后稍后再次加载到程序中。
在本教程中, 你将涵盖以下主题:
什么是酸洗?
泡菜可以用来做什么?
何时不使用泡菜
什么可以腌制?
泡菜vs JSON
酸洗文件
解开文件
压缩泡菜文件
在Python 3中取消选择Python 2对象
腌制和多处理
如果你想了解有关如何在Python中导入数据的更多信息, 请务必查看我们的”在Python中导入数据”课程及其相应的备忘单。
什么是酸洗?
Pickle用于对Python对象结构进行序列化和反序列化, 也称为封送处理或展平。序列化是指将内存中的对象转换为可以存储在磁盘上或通过网络发送的字节流的过程。稍后, 可以检索此字符流并将其反序列化回Python对象。酸洗不要与压缩混淆!前者是将对象从一种表示形式(随机存取存储器(RAM)中的数据)转换为另一种表示形式(磁盘上的文本)的转换, 而后者是用较少的位对数据进行编码的过程, 以节省磁盘空间。
你可以用泡菜做什么?
酸洗对于需要一定程度的数据持久性的应用程序很有用。程序的状态数据可以保存到磁盘, 因此以后可以继续进行处理。它还可以用于通过传输控制协议(TCP)或套接字连接发送数据, 或将python对象存储在数据库中。 Pickle在使用机器学习算法时非常有用, 你希望将它们保存起来以便以后可以做出新的预测, 而不必重写所有内容或重新训练模型。
何时不使用泡菜
如果要跨不同的编程语言使用数据, 则不建议使用pic