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' ...
随机推荐
- Python文字转换语音,让你的文字会「说话」,抠脚大汉秒变撒娇萌妹
作者 | pk 哥 来源公众号 | Python知识圈(ID:PythonCircle) APP 也有文字转换为语音的功能,虽然听起来很别扭,但是基本能解决长辈们看不清文字或者眼睛疲劳,通过文字转换为 ...
- js中的事件绑定的三种方式
1 直接在html标签中绑定 <button onclick = "show()"></button> 注意当你引用的js代码是包裹在window.onlo ...
- 使用Typescript重构axios(三)——实现基础功能:处理get请求url参数
0. 系列文章 1.使用Typescript重构axios(一)--写在最前面 2.使用Typescript重构axios(二)--项目起手,跑通流程 3.使用Typescript重构axios(三) ...
- 小白学 Python(21):生成器基础
人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...
- Kubernetes 挂载文件到pod里面
下面以chart为例子: 1.创建ConfigMap,这里要注意config.js为挂载的文件名 [root@cn-hongkong templates]# cat app-config.yaml a ...
- Dubbo的应用
导语:Dubbo是阿里巴巴的一个分布式服务的开源框架,致力于提供高性能和透明化的RPC远程服务调用方案,是阿里巴巴SOA服务化治理方案的核心框架,每天为2,000+个服务提供3,000,000,000 ...
- js控制文本显示的字数,超出显示省略号
在css中我们说了用css控制文本显示几行,超出用省略号,但这个办法是要完全占满一整行的,偏偏就是有UI设计师就不这么干,是不是很想打他,哈哈哈,我不会的时候都这样子在心里骂设计师的,这么久那么爱搞特 ...
- nyoj 204-Coin Test (python count)
204-Coin Test 内存限制:64MB 时间限制:3000ms 特判: No 通过数:2 提交数:2 难度:1 题目描述: As is known to all,if you throw a ...
- qt基础知识之类库概述
qt是用标准c++编写的跨平台开发类库,它对标准c++进行拓展,引入元对象系统.信号&槽.属性等特征 全局定义 容器类及对应迭代器 qt的模块化体系,分为 基本模块和拓展模块,一个模块通常就是 ...
- 力扣(LeetCode)猜数字大小 个人题解
我们正在玩一个猜数字游戏. 游戏规则如下:我从 1 到 n 选择一个数字. 你需要猜我选择了哪个数字.每次你猜错了,我会告诉你这个数字是大了还是小了.你调用一个预先定义好的接口 guess(int n ...