.npy文件_Numpy库使用入门(六)文件的存取

v2-04f1b4220468b3363bdbd56b6c6473ab_1440w.jpg?source=172ae18b
ERNIE:BERT,你看到我的npy了吗,我记得我放在这个文件夹里的呀(」><)」
BERT:就你还有npy?我还单着呢 ̄へ ̄
ERNIE:你想什么呢?我指的是numpy储存数据的文件的后缀名.npy......(oT-T)尸
BERT:emm......

文件的存取

读取CSV文件

将数组中的数据写入CSV文件中

  • 函数:np.savetxt(frame,array,fmt='%.18e',delimiter=None)
  • frame:文件、字符串或产生器,可以是.gz或.bz2的压缩文件。
  • array:存入文件的数组。
  • fmt:写入文件的格式,例如:%d %.2f %.18e
  • delimiter:分割字符串,默认是任何空格。

打开编程环境:

import numpy as np
a = np.arange(20).reshape(4,5)
np.savetxt('a.csv',a,fmt='%.1f',delimiter=',')

运行后打开记事本:

0.0,1.0,2.0,3.0,4.0
5.0,6.0,7.0,8.0,9.0
10.0,11.0,12.0,13.0,14.0
15.0,16.0,17.0,18.0,19.0

读取CSV文件到数组中

  • 函数np.loadtxt(frame,dtype=np.float,delimiter=None,unpack=False)
  • frame:文件、字符串或产生器,可以是.gz或.bz2的压缩文件。
  • dtype:数据类型,可选。
  • delimiter:分割字符串,默认是任何空格。
  • unpack:如果True,读入属性将分别写入不同变量。

打开编程环境,我们读入刚才的a.csv

import numpy as np
a = np.loadtxt('a.csv',dtype=np.int,delimiter=",")
print(a)

运行结果:

[[ 0  1  2  3  4][ 5  6  7  8  9][10 11 12 13 14][15 16 17 18 19]]

总结

  • 存入CSV文件:np.savetxt(),无返回值。
  • 取CSV文件:np.loadtxt(),有返回值。
  • 局限性:只能有效存取一维和二维数据。

存取多维数组的方法

将多维数据存入文件

  • 函数:a.tofile(frame,sep='',format='%s')
  • frame:文件、字符串。
  • sep:数据分割字符串,如果是空串,写入文件为二进制。
  • format:写入数据的格式。

再次打开编程环境(安利一波slight亮主题的pycharm):

import numpy as np
a = np.arange(20).reshape(4,5)
a.tofile("a.bat",sep=",",format='%d')

我们得到了一个二进制文件打开后:

0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19

可以看到,与savetxt函数不同,tofile输出的文件并没有体现数据的维度,而是将数组中的所有数据压缩成一维再逐个输出到文件中。

读入二进制文件

  • 函数:np.fromfile(frame,dtype=float,count=-1,sep='')
  • frame:文件、字符串。
  • dtype:读取的数据类型。
  • count:读入元素个数,-1表示读入整个文件。
  • sep:数据分割字符串,如果是空串,写入文件为二进制。

再试试:

import numpy as np
a = np.fromfile("a.bat",dtype=np.int,sep=',').reshape(4,5)
print(a)

运行结果:

[[ 0  1  2  3  4][ 5  6  7  8  9][10 11 12 13 14][15 16 17 18 19]]

np专用文件存取方式

np针对自身有一个非常简便的文件存取方式(其实笔者认为上面两种挺简单的了......),这个方法需要使用numpy特定的文件格式(.npy)

存入

  • 存函数:np.save(fname,array)np.savez(fname,array)
  • frame:文件名,以.npy为扩展名,压缩名为.npz
  • array:数组变量。

读取

  • 函数:np.load(fname)
  • frame:文件名,以.npy为扩展名,压缩名为.npz

来试试这种(最简便的文件读取方式):

import numpy as np
a = np.arange(100).reshape(5,10,2)
np.save("a.npy",a)
b = np.load("a.npy")
print(b)

运行结果:

[[[ 0  1][ 2  3][ 4  5]...[94 95][96 97][98 99]]]
​

为什么这种用.npy文件存取的方式使用起来更简单呢?我们打开“a.npy”文件,会在看不懂的文件的第一行看到一些我们看得懂的:

揘UMPY• v {'descr': '<i4', 'fortran_order': False, 'shape': (5, 10, 2), }    

事实上np.save将np数组以二进制形式存入.npy文件,并将np数组的原信息以键值对的形式(字典)存入.npy文件的第一行。这是为np量身打造的文件格式,所以我们在读取时就不需要指定一些其他的参数了,原本的np数组信息早就存进去了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/489877.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【linux】设置镜像源

首先找到默认的源 $cd /etc/apt $cp source.list source.list_default然后替换掉source.list文件为国内源。 清华源

Java易混小知识——equals方法和==的区别

一、equals方法和的区别 1.equals是String对象的方法&#xff0c;可以通过".“调用。 2. 是一个运算符。 二、常用的比较用法 1、基本数据类型比较。 equals和都比较两个数值 是否相等。相等即为true,不相等则为false。 2、引用对象的比较。 equals和都比较栈内存中的地址…

redis rua解决库存问题_如何解决高并发下的库存安全问题,没你想得那么复杂(附源码)...

一、 问题不知道大家该开发中有没有遇到这样的一个问题&#xff0c;在电影院购票或者去网上买东西的时候&#xff0c;比方说当年哪吒大电影出来的时候&#xff0c;那抢票相当火爆啊&#xff0c;一票难求&#xff0c;那购票系统的后台是如何保证观众能买到自己喜欢的票同时不用担…

AI 白皮书:赢家、输家

来源&#xff1a;云头条引言&#xff1a;纵观历史&#xff0c;对企业界而言改变游戏规则的始终是技术。制造商取代手艺人&#xff0c;工厂从制造商手里接过接力棒&#xff0c;自动化和遥测技术取代大部分重复性的人力劳动。从个人计算机到互联网和移动商务&#xff0c;在过去的…

python 首次登陆outlook 脚本_记Python“用户环境”的一次完美应用

在之前写过一篇关于虚拟环境使用的文章&#xff0c;但是还没有好好的介绍一下 Python 的用户环境&#xff0c;原因是自己一直没遇到要使用 用户环境 的使用场景&#xff0c;所以就一直懒得写。恰巧这两天&#xff0c;自己遇到了一个使用用户环境的体验可以完爆虚拟环境的案例&a…

【SAC】笔记

读写&#xff1a; https://seisman.github.io/SAC_Docs_zh/commands/write/ 保存文件&#xff1a; https://seisman.github.io/SAC_Docs_zh/graphics/save-image/ 滤波&#xff1a; https://seisman.github.io/SAC_Docs_zh/data-process/filter/ 在没有用户界面的时候画图 http…

uva 12108 Extraordinarily Tired Students(特别困的学生)

题目大意&#xff1a; 课堂上有n&#xff08;n<10&#xff09;个学生&#xff0c;每个学生都有一个“睡眠-清醒“”周期&#xff0c;其中第i个学生清醒Ai分钟后睡Bi分钟&#xff0c;然后重复&#xff08;1<Ai,Bi<5&#xff09;,初始时第i个学生处于他的周期的第Ci分钟…

今日头条、抖音推荐算法原理全文详解!

来源&#xff1a;运营大叔本次分享将主要介绍今日头条推荐系统概览以及内容分析、用户标签、评估分析&#xff0c;内容安全等原理。一、系统概览推荐系统&#xff0c;如果用形式化的方式去描述实际上是拟合一个用户对内容满意度的函数&#xff0c;这个函数需要输入三个维度的变…

星梦缘陈彦妃_浙江舟山80后女演员,2003年出演偶像剧《星梦缘》,还是专业模特...

陈彦妃&#xff0c;1984年2月4日出生于浙江省舟山市&#xff0c;中国内地影视女演员、流行乐歌手、模特。陈彦妃是一个真性情的女孩&#xff0c;在高中时期拍摄了偶像剧《星梦缘》&#xff0c;在这部戏中&#xff0c;陈彦妃基本上是本色出演&#xff0c;进入大学之后&#xff0…

python hstack_Python小白数据科学教程:NumPy (下)

点击“简说Python”&#xff0c;选择“置顶/星标公众号”福利干货&#xff0c;第一时间送达&#xff01;本文作者&#xff1a;王圣元转载自&#xff1a;王的机器本文偏长(1.8w字)&#xff0c;老表建议先收藏&#xff0c;然后转发朋友圈&#xff0c;然后吃饭、休闲时慢慢看&…

MATLAB并行实现的简单方法

此方法只是利用了matlab的设定&#xff0c;不需要额外知识。 众所周知&#xff0c;matlab是单线程的&#xff0c;但matlab的每个应用窗口都是一个线程&#xff0c;因此可以同时开启多个MATLAB跑程序&#xff0c;占满CPU的所有core。 例如处理多个文件的计算&#xff0c;单线程…

POJ 1631 nlogn求LIS

方法一&#xff1a; 二分 我们可以知道 最长上升子序列的 最后一个数的值是随序列的长度而递增的 &#xff08;呃呃呃 意会意会&#xff09; 然后我们就可以二分找值了&#xff08;并更新&#xff09; //By SiriusRen #include <cstdio> #include <cstring> #incl…

城市大脑与未来超级智能建设规范研究报告即将发布

来源&#xff1a;今日头条21世纪以来&#xff0c;特别是在2010年以来&#xff0c;前沿科技领域出现诸多“大脑”概念&#xff0c;企业界出现谷歌大脑&#xff0c;百度大脑&#xff0c;阿里大脑&#xff0c;360安全大脑&#xff0c;腾讯超级大脑等&#xff0c;产业界出现城市大脑…

练习图200例图纸讲解_【宅家数学课23】经典微课6:苏教版六年级下册比例尺典型例题选讲及练习(含答案)...

(截止日期&#xff1a;3月31日)学习过程1、点击观看经典微课&#xff1a;微课视频《比例尺》2、认真学习典型例题&#xff0c;完成下方练习题3、查看答案&#xff0c;在家长指导下批改&#xff0c;订正错误。苏教版小学数学六年级下册比例尺典型例题选讲及练习【考点分析】【例…

ajax datatype_Ajax的基本使用

Asynchronous javascript and xmlAjax的实现 : 基于一个对象XMLHttpRequest (如何获取?)步骤: 1. 获取ajax对象function getRequestObject() {if (window.XMLHttpRequest) {// 支持Opera, Safari, Mozilla, Chrome,Internet Explorer 7, and IE 8.return(new XMLHttpRequest()…

MATLAB画图详细教程

本文将详细介绍如何用matlab绘图并美化。 关于figure() 创建图窗窗口&#xff1a;figure() figure()的属性&#xff1a; Name&#xff1a;在标题栏显示的名称&#xff0c;接字符串&#xff0c;如Test Position&#xff1a;在电脑屏幕上的位置和大小&#xff0c;后接向量[l…

一个项目中说系统分为表现层、控制层、逻辑层、DAO层和最终数据库五层架构...

表现层就是看到的东西&#xff0c;比如你现在看到的当前页面控制层就将你的请求从页面传到后台代码逻辑层就是处理你的请求的代码DAO层就是将数据存到数据库中的代码数据库就是数据库了&#xff0c;存东西用的DAO层就是将访问数据库的代码&#xff0c;数据库层是数据存储与管理…

python封装exe如何返回上一步_如何将python脚本封装成exe程序?

我们在编写代码时候&#xff0c;&#xff0c;有没有想过怎么去运行这个代码&#xff0c;绝非是在编程软件里的预览哦。而是让用户去使用&#xff0c;绝对要成一个安装包&#xff0c;如果刚刚入门的小伙伴&#xff0c;肯定没有想过这些&#xff0c;因为大部分人&#xff0c;还处…

android 发送广播_从0系统学Android--5.2 发送广播

从0系统学Android--52 发送广播本系列文章目录&#xff1a;更多精品文章分类本系列持续更新中…. 初级阶段内容参考《第一行代码》5.3 发送自定义广播前面已经学习了如何接受广播了&#xff0c;下面来学习如何发送自定义广播&#xff0c;广播类型分为&#xff1a;标准广播和有序…

31页官方PPT,回顾史上最大芯片WSE:科技的壮丽美感!

来源&#xff1a;芯潮2019年8月20日&#xff0c;在Hot Chips顶会上&#xff0c;发布了一款震惊世界的芯片&#xff1a;全球有史以来最大的计算机芯片wafer-scale engine &#xff08;WSE&#xff09;问世&#xff01;这款巨型芯片来自美国创企Cerebras&#xff0c;每边约22厘米…