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' ...
随机推荐
- 如何在Vue项目中使用Typescript
0.前言 本快速入门指南将会教你如何在Vue项目中使用TypeScript进行开发.本指南非常灵活,它可以将TypeScript集成到现有的Vue项目中任何一个阶段. 1.初始化项目 首先,创建一个新 ...
- P2893 [USACO08FEB]修路
直入主题. 农夫约翰想改造一条路,原来的路的每一段海拔是Ai,修理后是Bi花费|A_i–B_i|.我们要求修好的路是单调不升或者单调不降的.求最小花费. 数据范围:n<=2000,0≤ Ai ≤ ...
- 1. 彤哥说netty系列之开篇(有个问卷调查)
你好,我是彤哥,本篇是netty系列的第一篇. 欢迎来我的公从号彤哥读源码系统地学习源码&架构的知识. 简介 本文主要讲述netty系列的整体规划,并调查一下大家喜欢的学习方式. 知识点 ne ...
- Python Socket学习之旅(一)
Socket概述 socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄,应用程序通常通过"套接字"向 网络发出请求或者应答网络请求. s ...
- MyBatis --- 映射关系【一对一、一对多、多对多】,懒加载机制
映射(多.一)对一的关联关系 1)若只想得到关联对象的id属性,不用关联数据表 2)若希望得到关联对象的其他属性,要关联其数据表 举例: 员工与部门的映射关系为:多对一 1.创建表 员工表 确定其外键 ...
- Groovy单元测试框架spock基础功能Demo
spock是一款全能型的单元测试框架. 最近在做单元测试框架的调研和尝试,目前确定的方案框架包括是:spock,Junit,Mockito以及powermock.由于本身使用Groovy的原因,比较钟 ...
- (十七)golang--闭包(简单明了)
所谓闭包:就是一个函数和其相关的引用环境组合的一个整体: 首先,有如下一个小例子,最终的输出结果是什么呢?是输出11,12吗? 对上述代码说明:(1)addUpper是一个函数,返回的是func(in ...
- 航空概论(历年资料,引之百度文库,PS:未调格式,有点乱)
航空航天尔雅 选择题1. 已经实现了<天方夜谭>中的飞毯设想.—— A——美国2. 地球到月球大约—— C 38 万公里3. 建立了航空史上第一条定期空中路线—— B——德国4. 对于孔明 ...
- hdu 2063 过山车 (二分图,最大匹配)
过山车Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submissi ...
- nyoj 264-国王的魔镜 (string[-1:-int(str_len/2+1):-1])
264-国王的魔镜 内存限制:64MB 时间限制:3000ms 特判: No 通过数:13 提交数:25 难度:1 题目描述: 国王有一个魔镜,可以把任何接触镜面的东西变成原来的两倍——只是,因为是镜 ...