numpy读写文件

读写文件方法

读文件 写文件 说明
from_file() to_file() 保存为二进制文件,兼容性差
load() save()
savez()
savez_compressed()
保存为二进制文件
loadtxt() savetxt() 从文本数据中读取数据,loadtxt()只能处理没有缺失值的文件
genfromtxt() 读文件时,如果有缺失值,则缺失值按一定的格式处理
scipy.io.loadmat() 读取matlab文件

from_file()和to_file()

numpy.fromfile(file, dtype=float, count=-1, sep=’’)
读取二进制文件或者文本文件,返回一个数组。

参数 类型 默认值 说明
file file,str 文件描述符或者文件名
dtype data-type float 返回数组的类型,在二进制文件中用来表明大小和字节顺序
count int -1 读取的项目数,-1表示全部读取
sep str ‘’ 空(’’)表明文件应该按照二进制文件进行读取

ndarray.tofile(fid, sep="", format="%s")
写文件

参数 类型 默认值 说明
file file,str 文件描述符或者文件名
sep str ‘’ 空(’’)表明文件应该按照二进制文件进行写入
format str %s 输出文本文件时,字符串的输出格式

尽量不要使用fromfile()和tofile()因为其具有平台依赖性,没有存储与字节顺序和字节类型相关的信息。可以使用save()和load()将文件存储为.npy格式,进行平台独立行存储

load()和 save()

numpy.load(file, mmap_mode=None, allow_pickle=True, fix_imports=True, encoding=‘ASCII’)
从.npy , .npz或者pickled文件中加载数组或者pickled对象

参数 类型 默认值 说明
file file-like obj,string,pathlib.path file-like obj必须支持seek()和read()操作,对于pickled文件还需要支持readline()操作
mmap_mode None,‘r+’,‘r’,‘w+’,‘c’ None 如果不选择None,则进行memory-map文件,memory-map文件还存储在磁盘上,然而却可以被访问,memory mapping 对于读取大文件的小部分数据特别有用
allow_pickle boo True 是否允许读取pickled对象
fix_imports bool True 使用Python 3读取Python2 存储的pickled文件时有用
encoding str ASCII 使用Python 3读取Python2 存储的pickled文件时有用
return array,tuple,dict,etc

numpy.save(file, arr, allow_pickle=True, fix_imports=True)
将一个数组以.npy格式保存成二进制文件

参数 类型 默认值 说明
file file,str,pathlib.path 保存成的文件名,如果是file-obj,则文件名不发生改变,如果文件是个字符串或者是路径,如果没有,npy扩展,则会自动添加到后面
array array_like 存储的数组
allow_pickle bool True 是否保存成pickle,原因有:安全性(加载pickled数据需要执行专门的代码);兼容行
fix_imports bool True 是否让Python3保存成Python2兼容的pickled文件

numpy.savez(file, *args, **kwds)
将多个数组保存到一个非压缩的.npz格式的文件中

参数 类型 默认值 说明
file str,file
args Aruments 存储到文件中的数组的名称,如果不指定,则为"arr_0",“arr_1”…
kwds Keyword arguments 存储的数组,对应与keyword的名称

numpy.savez_compressed(file, *args, **kwds)
将多个数组存储成压缩的.npz格式
参数同上

loadtxt()和savetxt()

numpy.loadtxt(fname, dtype=<class ‘float’>, comments=’#’, delimiter=None, converters=None, skiprows=0, usecols=None, unpack=False, ndmin=0, encoding=‘bytes’)
从文本文件中加载数据,txt文件中每行必须具备相同的个数

参数 类型 默认值 说明
fname file,str,pathlib.path 如果后缀是.gz或者是bz2,则先进行解压缩
dtype data-type float 如果是个structured数据类型,返回的组将会是一维的,每行解释为数组的一个元素,因此,列数应该和数据类型的成员一样
comments str,sequence of str # 注释标识符
delimiter str ’ ’ 数据分隔符
converters dict None
skiprows int 0 跳过的行数
usecol int,sequence None 读取哪些列
unpack bool False 如果为真,分会返回单个列
ndim int 0
encode str byte
return ndarray

numpy.savetxt(fname, X, fmt=’%.18e’, delimiter=’ ‘, newline=’\n’, header=’’, footer=’’, comments=’# ', encoding=None)
将数组存储成文本文件

参数 类型 默认值 说明
fname filename,file handle 如果文件以.gz结尾,则会自动保存在gzip格式
X 1D or 2D array_like 要存储的数据
fmt str,sequence of strs ‘%.18e’
delimiter str ’ ’ 分隔符
newline str ‘\n’ 新行
header str ’ ’ 写在文本的前面
footer str ’ ’ 写在文本的后面
comments str ‘#’ 注释标示符
encoding None,str None

genfromtxt()

numpy.genfromtxt(fname, dtype=<class ‘float’>, comments=’#’, delimiter=None, skip_header=0, skip_footer=0, converters=None, missing_values=None, filling_values=None, usecols=None, names=None, excludelist=None, deletechars=None, replace_space=’_’, autostrip=False, case_sensitive=True, defaultfmt=‘f%i’, unpack=None, usemask=False, loose=True, invalid_raise=True, max_rows=None, encoding=‘bytes’)
从一个文本文件加载数据,当有缺失值进行特殊处理

参数 类型 默认值 说明
fname file,str,pathlib.Path,list of str,generator 如果后缀是gz,bz2,会进行解压缩
dtype dtype float 数据类型
comments str ‘#’ 注释标识符
delimiter str ’ ’ 数据分隔符
skiprows int 0 跳过的行数
skipheader int 0 在文本开始跳过的行数
skipfooter int 0 在文本结尾跳过的行数
converters variable None 将某行转换成某个数值,同时也为缺失值提供默认值
missing_values variable None
filler_values variable None 当数据缺失时,填补为默认值的数据集
usecol int,sequence None 读取哪些列
name None,True,str,sequence None 如果为True,则会读取skip_header之后的第一行作为数据类型的名称,如果是str,sequence,被用作数据类型的名称,如果是None,则使用数据结构自身的名称
其他

猜你喜欢

转载自blog.csdn.net/limengjuhanxin/article/details/86304799
今日推荐