python读取写入pickle、npy格式文件(代码+注释)

npm ERR! Error: EPERM: operation not permitted 在根据angular4官网的例子做时,安装完node.js和angular/cli后,进行新建项目 采用命令ng new my-app时,报如下错误 npm WARN tarball tarball data for @angular/compiler@^6.1.0 (sha1-arNchYT72hOmcI3 xS4sDzI+EmpQ=) seems to be corrupted. Tryi... 阅读详情
AI摘要

本文介绍了Python中Pickle模块和Numpy的.npy文件格式用于数据存储的方法。包括Pickle的基本操作如序列化和反序列化过程,以及Numpy数组的保存与加载流程。

1 Pickle文件

1.1 介绍

pickle模块可以对小数据量进行存储。数据存储在一个.pickle文件中。pickle和数据库都是为了方便存储数据。

1.2 写入pickle文件

pickle可以将对象数据压到一个文件中,永久保存。这样在取用时,只需将该文件中的数据取出。而不是每次都重新进过各种语句,处理得到对象数据。

pickle.dump(obj,file,protocal) 序列化对象,并将结果数据流写入到文件对象中。参数protocol是序列化模式,默认值为0,表示以文本的形式序列化。protocol的值还可以是1或2,表示以二进制的形式序列化。

import pickle
d = dict(name='Bob', age=21, score=99)
with open('val.pickle', 'wb') as f:
    pickle.dump(d, f)

1.3 读取pickle文件

pickle.load(file) 反序列化对象。将文件中的数据解析为一个Python对象。

# 方法一
import pickle
file = open('/Data/Embedding/rel.voc.pickle','rb')  # 以二进制读模式(rb)打开pkl文件
data = pickle.load(file)  # 读取存储的pickle文件
print(type(data))   # 查看数据类型
for i, (k, v) in enumerate(data.items()):   # 读取字典中前十个键值对
    if i in range(0, 10):
        print(k, v)

结果截图:
在这里插入图片描述

# 方法二
import pickle as pkl
test= pkl.load(open("fold-0.test.pickle","rb"))
print(type(test))   # 查看数据类型
# 输出:
<class 'list'>

test[0].__dict__

1.4 读取后存入txt文件

# 将字典数据存入txt文件
f = open('/Data/Embedding/rel.voc.txt','w',encoding='utf-8')  #以'w'方式打开文件
for k,v in data.items():  # 遍历字典中的键值
    s1 = str(k)                 # 把字典的值转换成字符型
    s2 = str(v)                 # 把字典的值转换成字符型
    f.write(s1 + ':' + s2 +'\n')             # 一行一个键值对
f.close() # 关闭文件

file.close()
# 将列表数据存入txt文件
f = open('/mnt/data/sunqi/Work/KBQA-Adapter/Data/SQB/fold-0.vaild.txt','w',encoding='utf-8')  #以'w'方式打开文件
for i in range(len(a)):  # 遍历列表
    s = str(a[i].__dict__)  # 一行一个dict
    f.write(s +'\n')             
f.close() # 关闭文件

file.close()

2 npy文件

2.1 介绍

.npy文件是numpy专用的二进制文件。

np.load和np.save是读写磁盘数组数据的两个主要函数,默认情况下,数组是以未压缩的原始二进制格式保存在扩展名为.npy的文件中。

2.2 写入npy文件

将数组以二进制格式保存到磁盘。

import numpy as np
a=np.arange(5)
np.save('test.npy',a)

这样在程序所在的文件夹就生成了一个test.npy文件

2.3 读取npy文件

将test.npy文件中的数据读出来

import numpy as np
test=np.load('/Data/word.emb.nre.npy',encoding = "latin1")  #加载文件
print(type(test))  # 查看数据类型
# 输出:
<class 'numpy.ndarray'>

print(test.shape)  # 查看numpy.ndarray数据的维度
# 输出:
(100003, 300)

print(test[0])

2.3 存入txt文件

# 将numpy矩阵数据存入txt文件
doc = open('/Data/word.emb.nre.txt', 'a')  #打开一个存储文件,并依次写入
for i in range (len (test)):
    doc.write(str(test[i])+'\n')
doc.close()
Python机器学习经典实例代码复现指南 机器学习教学代码复现是数据科学入门的关键实践环节,其核心在于理解算法原理与工程落地之间的版本兼容性鸿沟。当scikit-learn、scipy、opencv等库持续迭代,旧版教材代码常因API变更、模块废弃或依赖冲突而失效。本文聚焦Python机器学习经典实例的实战复现,系统解析环境断层成因,提供基于Python 3.7与sklearn 0.21.x的精准版本锚定方案,并给出imread迁移、维度校验、编码适配、中文字体渲染四大高频问题的可粘贴修复补丁。适用于高校课程实训、自学调试及Legacy代码维护场景 阅读详情

相关推荐

SMP 播放器

播放媒体文件,我们常用的有某著名国产软件,以及也非常流行的韩国产 KMPlayer 软件,但后者由于采用了大量 GPL 的库却没有公布源代码,使其违反了 GPL 许可证,已经被列入 FFmpeg 加入耻辱名单,是到了抛弃的时候了。 我们对媒体播放器的要求无非是简洁的界面,流畅的播放,支持各种格式,干净,迅速,以及高级用户的自定义功能,跨平台需求。而这些要求在 SMPlayer 里都能实现。

文件的读写基本操作

一、文件是计算机中数据持久化存储的表现形式 读写文件标准操作格式1: 1、打开文件:file1 = open('文件名','读写模式') 2、操作文件 3、关闭文件:file1.close() 文件操作完毕后必须关闭,否则长期保持对文件的连接状态,造成内存溢出的现象发生 读写文件操作格式2: # 1、打开文件 file1 = open('demo.txt','w') # 2、操作文件 file1.write('hello world') # 3、关闭文件 file1.close() 1、打开文件:wi

范高伦的博客 1万+

怎么更改360极速浏览器临时文件到指定文件夹

怎么更改临时文件到指定文件夹 - 360极速浏览器

Linux解压缩命令 tar -zxvf 压缩-zcvf 到指定文件夹-C

横杆(减号)可有可无, f要在最后。不加横杆(减号)也能用。摘自 fedora39。摘自fedora39。

kfepiza的博客 3万+

gps matlab 书,《GPS基本原理及其Matlab仿真》杨俊.pdf

本书讲述了全球定位系统(GPS)的基本原理和概念,具体包括:GPS测量原理、GPS的结构和发展历史;GPS伪距定位和载波相位定位的原理;GPS中使用的坐标系和时间系统;C/A码的实现原理及载波调制过程;GPS信号捕获和跟踪原理及实现;便携式GPS系统的设计与实现及常用芯片资料等。此外,本书还讲了利用Matlab仿真GPS中涉及到的各种算法和原理,并且给出了所有仿真源程序和仿真框图。利用Matlab...

weixin_33603105的博客 1176

Macbook Pro上如何修改brew源

一、需求说明 我的macbook电脑安装了中科大的brew源码,发现安装gpg工具失败,其他工具可以正常安装,为了能将gpg安装成功,就找了找切换brew源的方案,记录如下。 二、切换至国内源 由于使用github默认源有可能存在路径远或者部分服务访问超时的原因,切换至国内源可以提速。 2.1 替换brew.git $ cd "$(brew --repo)" # 中国科大: $ git remote set-url origin https://mirrors.ustc.edu.cn/brew.git #

bufegar0的博客 1079

Python数据持久化:pickle与npy格式的实战指南与性能对比

在数据处理与机器学习中,数据序列化是连接内存计算与持久化存储的关键技术。其核心原理是将程序运行中的复杂对象或数据结构转换为可存储或传输的字节流或二进制格式,以便后续完整重建。这项技术的价值在于,它解决了临时内存数据无法长期保存和复用的问题,极大地提升了工作流的可重复性和效率。在Python生态中,针对不同的应用场景,主要有两种主流方案:pickle模块作为Python标准库的一部分,提供了通用的对象序列化能力,能够保存包括自定义类实例在内的几乎所有Python对象状态;而NumPy库专用的.npy格式,则为

weixin_32247165的博客 302

DP3(3D Diffusion Policy)算法详解:从点云感知到扩散动作生成

DP3 的全称是:DP3 = 3D Diffusion Policy\boxed{\text{DP3 = 3D Diffusion Policy}}DP3 = 3D Diffusion Policy​对应论文题目是:3D Diffusion Policy: Generalizable Visuomotor Policy Learning via Simple 3D Representations该工作发表于 Robotics: Science and Systems(RSS)2024。DP3 是一种面向机器

u013250861的博客 355

pickle是什么?

参考:Python的pickle模块详解(包括优缺点及和JSON的区别)_pickle python-优快云博客

qq_34425255的博客 186

安卓端目标检测模型部署血泪史:从NCNN/TFLite/MNN全军覆没到Torchscipts终见光明

公司需在Android设备部署目标检测模型,要求: ✅ 实时检测速度≥15FPS ✅ 模型精度损失<5% ✅ 兼容中低端安卓设备👉 GitHub项目地址:pytorch/android-demo-app/ObjectDetection我已上传这份源码到csdn下载准备模型(必须走这步才能跑通安卓端源码)如果您没有设置PyTorch环境来运行该脚本,可以下载模型文件此处转到“android演示app/ObjectDetection/app/src/main/assets”文件夹,然后跳过此步骤的其余部分,直

机器学习、深度学习、强化学习、迁移学习 1571

超详细YOLOv8姿态检测全程概述:环境、训练、验证与预测详解

本篇博客详细介绍了使用YOLOv8-pose进行姿态估计的全过程,包括不同版本模型的性能比较、训练与验证步骤,以及预测代码的实现。它对模型参数、训练过程和输出结果进行了解释,同时提供了详细的配置文件示例和标签数据格式说明。此外,还演示了如何使用预训练模型进行图像预测,并如何处理和理解预测结果。最后,它还讨论了如何评估和比较不同模型的性能。如果有哪里写的不够清晰,小伙伴本可以给评论或者留言,我这边会尽快的优化博文内容,另外如有需要,我这边可支持技术答疑与支持。

CDBmax的博客 3万+

Python读取.data文件全攻略:从格式识别到实战解析

在数据处理领域,文件格式解析是数据工程师和科学家的基础技能。其核心原理在于理解不同数据存储格式的编码方式和结构定义,这直接决定了数据能否被正确加载和计算。掌握格式识别与解析技术,对于构建健壮的数据管道、提升数据预处理效率具有重要价值,广泛应用于机器学习、科学计算和数据清洗等场景。本文聚焦于.data文件这一常见但格式不明确的“黑盒”,通过介绍文件魔数检测、编码识别和分隔符分析等方法,结合Python的pandas、numpy等工具库,系统讲解如何将未知格式的.data文件转化为可操作的DataFrame或数

weixin_33866037的博客 316

企业级 Agent 在 K8s 上的运行模型

Kubernetes├── Agent Orchestrator(控制面)├── Agent Runtime Pods(执行面)├── Graph DSL(流程层)├── Tool Services(能力层)K8s(调度)+ Graph(流程)+ Agent(决策)+ Tool(执行)+ Guard(治理)

一起修行,不孤单。这里有编程语言、开发工具、学习方法论和踩坑笔记。用简单的话说复杂的事,陪你从小白到进阶。周更干货,欢迎一起成长! 1173

p文件的读取与存储

.p文件的读取与存储 p文件是m文件的加密格式,一般是为了防止算法暴露而转化的,在函数调用的时候优先于m文件。在Matlab中我们可以直接使用pcode命令进行转换。但是从p文件到m文件的转变是不可逆的。 接下来针对我跑模型生成的.p文件,利用python来进行文件格式的转化,并读取里面的数据文件,将其保存为更好处理的.mat数据格式。 利用Python包先将.p存储成.npy格式 利用pytho...

Eve_if的博客 1万+

Jupyter notebook教程系列(二)Jupyter notebook的基本用法

Jupyter notebook的基本使用   一. 主页面 如图1-1 我们先介绍一下主页面上的内容: 1.Files页面是用于管理创建文件相关类目的。 2.Running页面主要展示的是当前正在运行当中的终端和“ipynb”格式的notebook。若想要关闭已经打开的终端和“ipynb”格式的notebook,仅仅关闭其页面是无法彻底退出程序的,需要在Running页面点击其对...

dlhlSC的博客 1438

【系统分析师】写作框架:软件设计模式及其应用

本文围绕"软件设计模式及其应用"展开论述。首先介绍了近三年参与的某软件开发项目背景及个人承担的系统设计工作。其次系统阐述了设计模式的三大分类:创建型(如工厂方法、单例模式)、结构型(如适配器、装饰器模式)和行为型(如观察者、策略模式),重点分析了各类模式的特点和典型应用场景。最后结合项目实践,详细说明了采用的三种设计模式的具体实施过程及效果,包括提高代码复用性、降低耦合度等优势。文章还总结了项目经验,指出存在的不足及改进方向,强调合理运用设计模式对构建高质量软件系统的重要性。全文通过理论

数据知道的博客 5062

NumPy 输入输出(I/O)例程完全指南:npy/npz 二进制、文本文件与内存映射的读写实践

本文以 NumPy 官方参考手册中的 [routines.io 例程索引](https://link.gitcode.com/i/628029051696d038226ddac312174c91) 为主线,系统讲解 NumPy 的全部输入输出能力:从 `save`/`load` 与 `npz` 归档的二进制持久化、`loadtxt`/`savetxt`/`genfromtxt` 的文本读写,到 `

gitblog_00711的博客 158

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

NumPy 1.16.3 发布说明全解析:pickle 安全加固、随机数精度修复与数组接口偏移量修正

本篇技术指南以 [doc/source/release/1.16.3-notes.rst](https://link.gitcode.com/i/0bfb3ee5c68ffa64f43e53ca274d4272) 发布说明为骨架,逐条深入解读 NumPy 1.16.3 的三类核心变更:针对 CVE-2019-6446 的反序列化安全加固(`np.load` 默认关闭 pickle 反序列化)、`r

gitblog_00695的博客 353

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

NumPy 文件读写实战指南:从文本 CSV 到二进制格式与内存映射

本篇技术指南基于 [doc/source/user/how-to-io.rst](https://link.gitcode.com/i/d65b1a493617d7ae99bf81ef9b0e8b70) 展开,系统讲解 NumPy 在真实场景中最常用的文件 I/O 方案:读取文本与 CSV 数据(含缺失值处理)、保存与加载 `.npy`/`.npz` 二进制格式、用结构化 dtype 解析任意二进

gitblog_00763的博客 395

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

深度学习笔记(十六)---几种数据形式的灵活读取

数据的读取是我们进行工作的第一步,在我们拿到各种各样的数据时,首先要知道数据的格式以及label,对应的种类,数量,下面就先介绍常用数据的读取方式。从数据角度分两种,一是ndarray格式的纯数值数据的读写,二是对象(数据结构)如dict的文件存取。 导入将要使用的函数包 import cv2 from torchvision.datasets import ImageFolder impo...

一一 1754

Python读取.data文件全攻略:从编码探测到分块处理

在数据处理领域,文件格式解析是数据工程师和科学家必须掌握的基础技能。其核心原理在于理解不同数据存储格式的编码规则与结构特征,这直接决定了数据能否被正确加载和分析。掌握文件格式解析技术,对于提升数据预处理效率、确保数据质量至关重要。在实际工程实践中,常见的应用场景包括处理学术数据集、工业传感器日志以及遗留系统导出的数据文件。这些场景中,.data文件作为一种非标准格式频繁出现,其内部可能包含文本表格、序列化对象或二进制数据等多种结构。本文聚焦于Python环境下.data文件的读取方法,详细介绍了通过编码探测

weixin_34417200的博客 389

PaddleSpeech 音频流式数据写入器(streamdata.writer)深度解析:TarWriter 与 ShardWriter 实战指南

本篇技术指南围绕 PaddleSpeech 仓库中 `paddlespeech.audio.streamdata.writer` 模块展开,讲解如何将音频样本编码并写入 WebDataset 风格的 tar 分片文件,服务于流式训练数据管线(`use_stream_data`)。读完本文,你将掌握 `TarWriter`、`ShardWriter` 的完整参数语义、内置编码器(handler)机制

gitblog_00093的博客 169

scientific-agent-skills 之 EDA 通用科学格式:CSV/JSON/NumPy/HDF5 有界检查与统计严谨性完整指南

本指南基于 [scientific-agent-skills](https://link.gitcode.com/i/c3d3e4b66fef569317975c69c805295e) 仓库中 `exploratory-data-analysis` 技能(下称 EDA 技能)的格式权威参考文档 [general_scientific_formats.md](https://link.gitcode

gitblog_00099的博客 313

NumPy 1.16.0 版本详解:Python 2.7 终结版、matmul 升级为 ufunc 与结构化数组改造

本文以 [doc/source/release/1.16.0-notes.rst](https://link.gitcode.com/i/5bfd16b22b211467161602e20d84a090) 为主线,系统梳理 NumPy 1.16.0 的版本定位、新功能、弃用与兼容性变更,并结合当前仓库源码(`numpy/lib/recfunctions.py`、`numpy/lib/_histog

gitblog_00404的博客 949

PaddleSpeech 特征归一化模块解析:ZScore 频谱统计归一化与逆变换的实现与实战

本文围绕 PaddleSpeech 中 `paddlespeech.t2s.modules.normalizer` 模块(文档入口见 [paddlespeech.t2s.modules.normalizer.rst](https://link.gitcode.com/i/2b2e7c8b149da2793a8d29207bded125))展开,深入剖析其唯一核心类 `ZScore` 的源码实现、统

gitblog_00338的博客 346

nnU-Net 预处理数据格式与前景采样位置存储(fg_sampling)深度解析

本文围绕 nnU-Net v2 官方参考文档 [documentation/reference/preprocessed-data-format.md](https://link.gitcode.com/i/8c3bf2ffa62244df41733045aa9893fb) 展开,系统讲解 `nnUNet_preprocessed` 目录下每个配置文件夹中各类文件的含义、前景采样位置(foregr

gitblog_00875的博客 191
上一篇: Pandas学习笔记(包括示例代码、运算结果及详细注释)
下一篇: Python之面向对象编程OOP(包括详细代码举例及注释)
StriveQueen
博客等级 码龄8年 98粉丝 160原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值