使用pickle存储和读取数据

读取pickle文件内容 pkl文件是python保存文件的一种文件格式,如果直接打开会显示一堆序列化的东西。结果相同,而且pandas获取行数,列数和元素总数(大小)更方便。rb – 读取2进制文件,r – 读取文本文件。猜测是数据类型出现问题,于是在官网里查找。发现一种更简单的方法:用pandas读取。是dict类型,那就用字典类型的函数。需要使用rb类型来打开。 阅读详情

使用pickle存储和读取数据

特别鸣谢:天津师范大学王树义老师的B站相关教学

# pickle可以将不同格式的对象以文件的形式存放在磁盘上,并以最大程度保持数据原貌的形式进行读取
"""
使用pickle的现实原因:
    1. 现实情况中,我们要求数据可以分开存储和读取,便于应对中断与连续、分工与合作等情况。
    (就像腌黄瓜一样,我们把黄瓜切成一小块一小块的,然后存到罐子里,等需要黄瓜的时候,再从罐子里取);
    2. 其他存储方式(如CSV\JSON\SQLite)存在一些问题。
    (如存储时包含表头,取出来用的时候忘记取表头,结果导致数据错乱;
      如存储时使用gbk格式存储数据,读取时用utf-8格式读取,结果导致编码错乱...)
"""
# 例子:用pickle存储和读取表格数据及其他数值型数据和字符串数据

# 原数据以csv格式存储,先用pandas读取
import pandas as pd
df = pd.read_csv('BitcoinPrice.csv',encoding='gbk') 
df.head()

# 单独定义一个数值型变量data,一个字符串数据string
data = int(2)
string = 'data description'

# 将Bitcoin_data\data\string全部用pickle存储到all_data文件中
import pickle
with open ('all_data.pkl','wb') as f:
    pickle.dump([df,data,string],f)

# 用pickle读取all_data文件中的数据
with open('all_data.pkl','rb') as f:
    [df,data,string] = pickle.load(f)
pickle库起到序列化操作的作用(生成cache文件)----Python数据读取加速技巧 持久性就是指保持对象,甚至在多次执行同一程序之间也保持对象。通过本文,您会对 Python对象的各种持久性机制(从关系数据库到 Python 的 pickle以及其它机制)有一个总体认识。另外,还会让您更深一步地了解Python 的对象序列化能力。 什么是持久性? 持久性的基本思想很简单。假定有一个 Python 程序,它可能是一个管理日常待办事项的程序,您希望在多次执行这个程 阅读详情

相关推荐

pytorch-----有关pickle文件的加载与保存以及利用pickle包中的数据创建数据集

pickle 是 Python 中一个内置的模块,用于将 Python 对象序列化为字节流并反序列化回 Python 对象。这个模块提供了一种简单的方法来将 Python 对象转换为一种格式,可以在不同的 Python 程序之间传输,也可以存储在文件系统中。

adadadadadadg的博客 2158

pickle(模型存储取出)

在机器学习中,我们常常需要把训练好的模型存储起来,这样在进行决策时直接将模型读出,而不需要重新训练模型,这样就大大节约了时间。Python提供的pickle模块就很好地解决了这个问题,它可以序列化对象并保存到磁盘中,并在需要的时候读取出来,任何对象都可以执行序列化操作。 5种协议 Protocol version 0 是最原始一种协议,它向后与以前的Python版本兼容。 Protocol ve...

weixin_43283797的博客 2068

python库pickle读写文件

pickle可以在任何支持pickle的计算机上运行

NLP与推荐算法 1626

Python :pickle存储和读取数据

Pickle 主要用于序列化和反序列化 Python 对象结构。Pickle之后的数据被存在*.pkl的文件中。方便存储和传输。

chuuuing的博客 4186

UVM验证中,为什么我的pack_bytes()返回长度是0?手把手教你排查自定义do_pack函数

本文深入解析UVM验证中pack_bytes()返回长度为0的常见原因及系统排查方法。从UVM打包机制原理出发,详细列举了super.do_pack()缺失、field automation冲突等典型问题,并提供动态数组处理、位宽计算等进阶调试技巧,帮助开发者快速定位和解决自定义do_pack函数问题。

weixin_42523693的博客 127

Vivado项目开发新思路:用VSCode写代码,用Vivado管理IP核与综合(Windows/Mac环境通用指南)

本文介绍了如何结合Vivado和VSCode的优势,打造高效的FPGA设计工作流。通过配置VSCode的Verilog插件和Vivado环境集成,开发者可以在VSCode中编写代码,同时利用Vivado管理IP核与综合,显著提升开发效率和团队协作体验。

weixin_42545503的博客 338

9. pickle模块

在机器学习中,我们常常需要把训练好的模型存储起来,这样在进行决策时直接将模型读出,而不需要重新训练模型,这样就大大节约了时间。Python提供的pickle模块就很好地解决了这个问题,它可以序列化对象并保存到磁盘中,并在需要的时候读取出来,任何对象都可以执行序列化操作。 Pickle模块中最常用的函数为: (1)pickle.dump(obj, file, [,protocol]) 函数的功能:将obj对象序列化存入已经打开的file中。 参数讲解: obj:想要序列...

大厂offer宝典 557

华为防火墙双ISP出口实战:如何用策略路由实现电信联通流量自动切换(附配置截图)

本文详细解析了华为防火墙在双ISP环境下的智能选路技术,通过策略路由与健康检测的深度应用,实现电信联通流量的自动切换。文章包含实战配置截图,帮助企业解决切换延迟、路径劣化等核心挑战,提升业务连续性。

backprop5master的博客 646

pickle文件以及如何打开

首先了解一下pickle文件是什么: pickle文件是一种存方式,可以将python项目过程中用到的一些暂时变量,或者需要提取、暂存的字符串、列表、字典等数据保存起来 一般采用load/loads打开,dump/dumps装载 如果直接用文本编辑软件如notepad++打开会出现乱码,可以调用python的pickle库(python2中是cPickle) import pickle # 读取pkl文件,rb是读取二进制文件,而r是读取文本文件 file = open('mtest_tasks.pkl

m0_38132177的博客 1万+

ASTRA Toolbox学习笔记-Python

ASTRA Toolbox 是一个用于处理 X 射线相干散射和 X 射线传输成像的开源算法工具箱。本文档概述了该工具箱的基本概念。

hou9021的博客 8262

深入剖析:NAND Flash与SD NAND(贴片式SD卡)存储扇区分配表架构差异与优化策略

本文深入探讨了NAND Flash与SD NAND(贴片式SD卡)在存储技术中的架构差异及其优化策略。NAND Flash作为非易失性存储器,依赖主控芯片进行坏块管理和磨损均衡,而SD NAND则通过内置控制器和标准文件系统(如FAT)简化了存储管理。两者在写入性能、容量扩展和可靠性方面各有优劣,NAND Flash需通过磨损均衡和写入合并优化性能,而SD NAND则通过高容量和高速传输提升效率。文章为嵌入式系统开发者和硬件工程师提供了关于如何根据需求选择并优化存储介质的参考。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1242

Python pickle的使用

pickle简介 pickle模块是对Python对象结构进行二进制序列化和反序列化的协议实现,就是把Python数据变成流的形式。 实例 import pickle dataList = [[1, 1, 'yes'], [1, 1, 'yes'], [1, 0, 'no'], [0,...

yanqianglifei的专栏 355

1.DJI-payload SDK负载开发准备和硬件连接及运行示例代码

大疆psdk开发环境

哒宰的博客 1443

016 pickle

  英文也是泡菜的意思。   学完了,还是感觉这个模块是蛮不错的,对多数据保存到文件中,然后在使用的时候,再读取出来,让程序闲的更加优雅,简洁。 一:介绍 1.为什么使用   在开篇已经介绍了,但是我这里粘贴一下别人对pickle的看法。   pickle是python语言的一个标准模块,安装python后已包含pickle库,不需要单独再安装。   那么为什么需要序列化和反序列化这一...

weixin_30426957的博客 65

Claude code 入门 安装和快速使用

Claude Code 可以理解为一个。你只需要用简单的语言告诉它要做什么,比如「帮我整理这些文件」、「改一下这个程序」、「分析一下这些数据」,它就能理解你的电脑项目,并自动完成很多操作。,比如整理文件、编程、数据分析…等等。使用终端、命令行还是挡住了非常多的朋友,这个时候,有个界面很重要!Claude code、Codex 官方也都推出了插件,安装即可使用。

2401_84052244的博客 1360

Trae的付费之路还挺艰难,茫茫多的人想付付不了(附解决办法)

不得不说,Trae国际版这个付费其实整的挺复杂的,但没办法,毕竟有政策限制,付费成功后,你就是尊贵的Pro用户啦,使用Claude 4不排队还是挺爽的,而且600次其实不算少了,有一个小技巧,简单的问题就把模型切到Gemini-2.5-flag,因为使用这个模型是没有次数限制的。其次付费的时候有个ZIP Code,这东西也是个迷之存在,有的地区节点需要填,有的不需要,如果你选到了不需要填的节点,那很好,付费就行了,如果需要填,可以填一个51800试试。

cpp加油站的专栏 5881

[小甲鱼] 零基础入门python第031讲课后测试题及答案:永久存储,腌制一缸美味的泡菜

测试题: 0.pickle的实质是什么?    pickle的实质是利用一些算法,将你的数据对象腌制成二进制文件,存储在磁盘上,也可以放在数据库或者传到另一台电脑上 1.使用pickle的什么方法存储数据?    pickle.dump(data,file),第一个参数是待存储的数据对象,第二个参数是目标存储的文件对象,注意要先使用“wb”的模式open文件 2.使用pickle的什么方法读取数据...

Erisay的博客 1410

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

(小甲鱼python)文件永久存储(下)总结 文件处理with语句和上下文管理器、pickle模块详解

(小甲鱼python)文件永久存储(下)总结 文件处理with语句和上下文管理器、pickle模块详解

qq_44985415的博客 684

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

[python]pickle序列化存储

1.为什么要进行序列化存储 在程序运行过程中所有的变量都是存在内存中,一旦程序关闭或者电脑关机,内存中的所有数据都会丢失。为了能够继续使用,我们需要将数据存放在硬盘里。 我们把变量从内存中变成可存储或传输的过程称之为序列化,在Python中叫pickling,在其他语言中也被称之为serialization,marshalling,flattening等等,都是一个意思。 序列化之后,就可以把序列化后的内容写入磁盘,或者通过网络传输到别的机器上。 反过来,把变量内容从序列化的对象重新读到内存里称之为反序列化

Pr4da的博客 311

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

机器学习--pickle 模块简单使用

pickle 提供了一个简单的持久化功能。 pickle 模块只能在 Python 中使用,Python 中几乎所有的数据类型(列表、字典、集合、类等)都可以用 pickle 来序列化。pickle 序列化后的数据,可读性差,人一般无法识别。 它有以下两个方法: pickle.dump(obj, file[, protocol]):序列化对象,并将结果数据流写入到文件对象中。 pickle.load(file):反序列化对象。将文件中的数据解析为一个 Python 对象。 例子: import pickl

糯米君的博客 496

15.泡菜:pickle模块

列表,字典 ==> 二进制文件 存放:pickling 读取:unpicklingdump load>>> import pickle >>> f = open('G:\\new.pkl','wb') #以写入方式打开二进制文件 >>> l = [1,2,['Kobe','Curry'],3.14,'Mary'] >>> pickle.dump(l,f) #将l列表导入f文件中 >>> f.cl

GoJawee的博客 474

python保存数据到本地_将Python中的数据存储到系统本地的简单方法

有很多时候,我们会在python的运行过程中得到一些重要的变量,比如一个数据量很庞大的dict。而且,后面的某些程序也会用到这个dict,那么我们就最好把它存储到本地来,然后下次调用的时候,先读取本地的文件,导入到字典类型中,调用即可。这样就免去了重新学习这个字典的过程。那么在python中如何把数据存储到本地呢?我们用到的是python中的pickle模块。如下:import pickledat...

weixin_39933438的博客 376

json 模块 和 pickle 模块

json模块 序列化和反序列化操作 dumps 和loads import json str1=“123” res=json.dumps(str1) print(res) res2=json.loads(res) print(res) 可以序列化的类型: Number:int bool float 容器:str tuple list dict ...

yincheng_fans的博客 195

第31讲:永久存储:腌制一缸美味的泡菜

测试题: 0:pickle的实质是什么? 答:pickle的实质就是利用一些算法将你的数据对象‘腌制’成二进制文件,存储在磁盘上,当然也可以放在数据库或者通过网络传输到另一台计算机上。pickle的实质就是利用一些 1:使用pickle的什么方法存储数据? 答:pickle.dump(date, file) #第一个参数是待存储的数据对象,第二个参数是目标存储的文件对象,注意要先使

Rlyi_C的博客 1055

pickle的使用:文件的存入与读出

文件存入 import pickle with open(file_path, 'wb') as f: pickle.dump(data, f) 文件读出 import pickle with open(file_path, 'wb') as f: data = pickle.load(f)

suyongcai1234的博客 887

python 怎么把程序存储到相应的文件_2018年7月25日python中将程序中的数据存储到文件中的具体代码实现...

#将程序中的数据可以分别以二进制和字符串的形式存储到文件中#首先引用pickle和json模块,实际应用中只需要引用一个就行pickle模块是将数据以二进制的形式存储到文件中,json模块是将数据以字符串的形式存储到文件中,一般用pickle,因为json存储到文件中之后用记事本打开可以直接看内容,所以不安全,而二进制文件用记事本打开是乱码,比较安全import pickle, jsonuser ...

weixin_39647977的博客 218
上一篇: 利用torch.distributions生成一些满足不同分布的随机数
下一篇: python argparse模块的使用(1)
never  loneliness
博客等级 码龄7年 7粉丝 8原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值