Numpy用于数组数据的存储和读取
Python的Numpy模块可用于存储和读取数据:
1.将一个数组存储为二进制文件
Numpy.save:将一个数组以.npy的格式保存为二进制文件
调用格式:numpy.save(file, arr, allow_pickle=True, fix_imports=True)
file的格式:file,str,or pathlib.Path. 如果file是一个文件对象,则文件名不会被改变;如果file是一个字符串或者路径,并且没有 .npy扩展,则会在后面加上 .npy的扩展
arr: 要保存的数组对象
Numpy.load:从.npy .npz或者pickled文件中加载数组或者pickled对象
调用格式:numpy.load(file, mmap_mode=None, allow_pickle=False, fix_imports=True, encoding='ASCII')
file的格式: file-like object, string, or pathlib.Path.类似文件对象(file_like object)必须支持seek()和read()方法。pickled文件要求file_like object必须支持readline()方法
encoding:读取python 2中的字符串时使用的编码方式。仅当在Python 3中加载Python 2生成的pickled文件时有用,该文件包括含有对象数组的npy / npz文件。不允许使用“ latin1”,“ ASCII”和“ bytes”以外的其他值,因为它们会破坏数字数据。默认值:“ ASCII”
返回:数组、元组或者字典等
import numpy as np arr = np.arange(12).reshape(3,4)
# 保存arr数组
np.save('arr.npy', arr)
# 读取arr文件
a = np.load('arr.npy')
print(a)
2.将一个数组存储为文本文件
Numpy.savetxt:将一个数组保存为文本文件,只能存储一维和二维数组
调用格式:numpy.savetxt(fname, X, fmt='%.18e', delimiter=' ', newline='n', header='', footer='', comments='# ', encoding=None)
fname:filename or file handle. 如果文件名以.gz结尾,文件将自动保存为gzip的压缩格式
X:要保存的一维或者二维数组对象
fmt:规定保存的数组元素类型,默认为%.18e
delimiter:字符串或者字符,用来分隔列,默认为空格
Numpy.loadtxt:从一个文本文件中加载数据,文本文件每一行的数值个数必须相同
调用格式:numpy.loadtxt(fname, dtype=<class 'float'>, comments='#', delimiter=None, converts=None, skiprows=0, usecols=None, unpack=False, ndmin=0, encoding='bytes', max_rows=None)
fname:要读取的文件,可以是.gz或者.bz2的压缩文件
dtype:指定数组的数据类型,默认为float
delimiter:用于分隔元素,要与文件中的分割符一致,默认为空格
返回:ndarray
import numpy as np arr = np.arange(12).reshape(3,4)
# 将一个数组保存为csv文件
np.savetxt('arr.csv', arr, delimiter=',')
# 读取文件
arr_file = np.loadtxt('arr.csv', dtype=np.int, delimiter=',')
print(arr_file)
3.将一个数组存储为文本文件或者二进制文件
(这种方法会造成数组的信息丢失,不适合精确存储)
ndarray.tofile:将一个数组存储为文本文件或者二进制文件
调用格式:nadrray.tofile(fid, sep="", format="%s")
fid:可以是打开的文件对象或者包含文件名的字符串
sep:分隔符,当sep为空时,以二进制的方式写入
format:输出的格式字符串
Numpy.fromfile:从文本或二进制文件中读取数据
调用格式:numpy.fromfile(file, dtype='float', count=-1, sep='', offset=0)
dtype:规定返回的数组的数据类型
count:读取的元素个数,-1为读取整个文件,默认-1,
offset:用于二进制文件,规定当前文件位置的偏移量(以字节为单位)
import numpy as np arr = np.arange(12).reshape(3,4)
arr.tofile('arr.txt', sep=',', format='%d')
# 以存储后的形式输出
arr_out1 = np.fromfile('arr.txt', dtype=np.int, sep=',')
print(arr_out1)
# 以存储前的形式输出
arr_out2 = np.fromfile('arr.txt', dtype=np.int, sep=',').reshape(3,4)
print(arr_out2)
4.将多个数组存入一个文件
Numpy.savez:将多个数组以未压缩的.npz格式存入一个文件中
调用格式:numpy.savez(file, *args, **kwds)
如果传入的数组参数没有给相应的键,则函数会自动给每个数组参数一个名字,从arr_0、arr_1、arr_2依次递推;如果给定了键,则可以用给定的键。
import numpy as np arr1 = np.arange(12).reshape(3, 4)
arr2 = np.random.randint(0, 12, (3, 4)) # 不给数组参数相应的键
np.savez('array.npz', arr1, arr2)
f = np.load('array.npz')
print(f['arr_0'])
print(f['arr_1']) # 给数组参数相应的键
np.savez('array2.npz', arr1=arr1, arr2=arr2)
f2 = np.load('array2.npz')
print(f2['arr1'])
print(f2['arr2'])
5.将多个数组以压缩的形式存入一个文件
Numpy.savez_compressed:将多个数组以压缩后的.npz格式保存到一个文件中
调用格式:numpy.savez_compressed(file, *args, **kwds)
savez_compressed的用法与savez类似
Numpy用于数组数据的存储和读取的更多相关文章
- 在VC下采用ADO实现BLOB(Binary)数据的存储,读取,修改,删除。
在VC下采用ADO实现BLOB(Binary)数据的存储,读取,修改,删除. 作者:邵盛松 2009-09-05 前言 1关于的BLOB(Binary)数据的存储和读取功能主要参考了MSDN上的一篇& ...
- 使用 SharedPreferences 实现数据的存储和读取
在开发的过程中我们必须遇到的就是如何对用户的数据进行有效的存储以及读取.我们举个例子,现在我们使用app,当我们登陆一个账号的时候选择记住密码软件就会记住我们的账号以及密码,我们退出当前账号,就可以直 ...
- Numpy 用于数组的文件输入和输出
将数组以二进制格式保存 np.save 和np.load 是读写磁盘数组数据的两个主要函数.默认情况下,数组是以未压缩的原始二进制格式进行保持在扩展名 为.npy的文件中的 如果文件路径末尾没有扩展名 ...
- (第二章第四部分)TensorFlow框架之TFRecords数据的存储与读取
系列博客链接: (第二章第一部分)TensorFlow框架之文件读取流程:https://www.cnblogs.com/kongweisi/p/11050302.html (第二章第二部分)Tens ...
- Numpy用于数组的文件输入输出
这一章比较简单,内容也比较少.而且对于文件的读写,还是使用pandas比较好.numpy主要是读写文本数据和二进制数据的. 将数组以二进制的格式保存到硬盘上 主要的函数有numpy.save和nump ...
- php基础系列之 数据的存储和读取
·文件处理 ·写入一个文件 1,打开这个文件.如果这个文件不存在,需要先创建它 2,将数据写入这个文件 3,关闭这个文件 ·从一个文件读出数据 1,打开这个文件.如果这个文件不能打开(例如,文件不存在 ...
- 实现JSON数据的存储和读取
事前准备: //创建一个Crime类 public class Crime { private String mTitle; private UUID mUUID; private Date mDat ...
- json数据的存储与读取
1. json数据格式: data = [ {"key1":"xxx","item":"ddd"}, {"k ...
- numpy中文件的存储和读取-嵩天老师笔记
numpy中csv文件的存储和读取 CSV文件:(Comma‐Separated Value, 逗号分隔值) 一维和二维数组 存储 np.savetxt(frame,array,fmt='%.18e' ...
随机推荐
- Css3动画-@keyframes与animation
一.@keyframe 定义和用法 @keyframes是用来创建帧动画的,我们通过这个属性可以用纯css来实现一些动画效果. 一般格式是: @keyframes 动画名称{ 0%{ 动画开始时的样式 ...
- 从代码的视角深入浅出理解DevOps
对于DevOps的理解大家众说纷纭,就连维基百科(Wikipedia)都没有给出一个统一的定义.一般的解释都是从字面上来理解,就是把开发(Development)和运维(Operations)整合到一 ...
- java 打包web 项目
1 选择你的web项目 2 右击,选择export 3 选择web下的war file 4 将打包好war包,保存在tomcat的webapps下 5 运行tomcat,tomcat会自动帮你解压这个 ...
- map集合中哪些是线程安全的
为什么HashMap是线程不安全的 总说 HashMap 是线程不安全的,不安全的,不安全的,那么到底为什么它是线程不安全的呢?要回答这个问题就要先来简单了解一下 HashMap 源码中的使用的存储结 ...
- SpringBoot 整合jdbc和mybatis
摘要 该文章主要为记录如何在SpringBoot项目中整合JDBC和MyBatis,在整合中我会使用简单的用法和测试用例,毕竟该文章目的是为了整合,而不是教大家如何去使用.希望大家多多包涵. 通用配置 ...
- Reporting service个人使用经验
(此文章是从自己写的Word文档里复制过来的,图没有了,文字也有些乱,凑合看吧) 部署环境 Windows server 2012 R2 软件环境 安装完整的sqlsever2012,IIS服务 需要 ...
- SqlServer2005 查询 第六讲 null
今天们来讲sql命令中的这个null参数 null null: 可以理解成[没有值,空值]的意思 注意以下几点 --1.零和null是不一样的,null表示空值,而零表示的一个确定的值 --2.nul ...
- Look into Bitmap images
What's a Bitmap image? I'm not going to explain the differences between raster and vector images, no ...
- Maven系列第9篇:多环境构建支持,核心开发必备!
maven系列目标:从入门开始开始掌握一个高级开发所需要的maven技能. 这是maven系列第9篇. 整个maven系列的内容前后是有依赖的,如果之前没有接触过maven,建议从第一篇看起,本文尾部 ...
- 深入ObjC GCD中的dispatch group工作原理。
本文是基于GCD的支持库libdispatch的源代码分析的结果或是用于作为源代码阅读的参考,尽量不帖代码,力求用UML图来说明工作流. 本文参考的源代码版本为v501.20.1,如有兴趣请自行到苹果 ...