读文件 | 写文件 | 说明 |
---|---|---|
from_file() | to_file() | 保存为二进制文件,兼容性差 |
load() | save() savez() savez_compressed() |
保存为二进制文件 |
loadtxt() | savetxt() | 从文本数据中读取数据,loadtxt()只能处理没有缺失值的文件 |
genfromtxt() | 读文件时,如果有缺失值,则缺失值按一定的格式处理 | |
scipy.io.loadmat() | 读取matlab文件 |
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格式,进行平台独立行存储
src="https://nbviewer.jupyter.org/github/limengjuhanxin/python/blob/master/numpy/file_ops/fromfile.ipynb" width="100%" height="1000">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格式
参数同上
numpy.loadtxt(fname, dtype=
从文本文件中加载数据,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 |
numpy.genfromtxt(fname, dtype=
从一个文本文件加载数据,当有缺失值进行特殊处理
参数 | 类型 | 默认值 | 说明 |
---|---|---|---|
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,则使用数据结构自身的名称 |
其他 | – | – | – |