1. Numpy 二进制文件
save()、savez() 和 load() 函数以 numpy 专用的二进制类型(npy、npz)保存和读取数据,这三个函数会自动处理 ndim、dtype、shape 等信息,使用它们读写数组非常方便,但是save()输出的文件很难与其它语言编写的程序兼容。
- npy格式:以二进制的方式存储文件,在二进制文件第一行以文本形式保存了数据的元信息(ndim,dtype,shape等),可以用二进制工具查看内容。
- npz格式:以压缩打包的方式存储文件,可以用压缩软件解压。
用解压软件打开 test.npz 文件,会发现其中有三个文件:arr_0.npy,arr_1.npy,z_d.npy,其中分别保存着数组x,y,z的内容。
-
savez()第一个参数是文件名,其后的参数都是需要保存的数组,也可以使用关键字参数为数组起一个名字,非关键字参数传递的数组会自动起名为 arr_0, arr_1, …。
-
savez()输出的是一个压缩文件(扩展名为npz),其中每个文件都是一个save()保存的npy文件,文件名对应于数组名。 load()自动识别npz文件,并且返回一个类似于字典的对象,可以通过数组名作为关键字获取数组的内容。
2. 文本文件
savetxt(),loadtxt() 和 genfromtxt() 函数用来存储和读取文本文件(如TXT,CSV等)。genfromtxt() 比 loadtxt() 更加强大,可对缺失数据进行处理。
-
n
u
m
p
y
.
s
a
v
e
t
x
t
(
f
n
a
m
e
,
X
,
f
m
t
=
′
f
o
o
t
e
r
=
′
′
,
c
o
m
m
e
n
t
s
=
′
#
′
,
e
n
c
o
d
i
n
g
=
N
o
n
e
)
\color{blue}numpy.savetxt(fname, X, fmt='%.18e', delimiter=' ', newline='n', header='', footer='', comments='\# ', encoding=None)
numpy.savetxt(fname,X,fmt=′footer=′′,comments=′#′,encoding=None)
① f n a m e : 文 件 路 径 \color{red}① fname:文件路径 ①fname:文件路径
② X : 存 入 文 件 的 数 组 。 \color{red}② X:存入文件的数组。 ②X:存入文件的数组。
③ f m t : 写 入 文 件 中 每 个 元 素 的 字 符 串 格 式 \color{red}③ fmt:写入文件中每个元素的字符串格式 ③fmt:写入文件中每个元素的字符串格式
④ d e l i m i t e r : 分 割 字 符 串 , 默 认 以 空 格 分 隔 。 \color{red}④ delimiter:分割字符串,默认以空格分隔。 ④delimiter:分割字符串,默认以空格分隔。 -
n
u
m
p
y
.
l
o
a
d
t
x
t
(
f
n
a
m
e
,
d
t
y
p
e
=
f
l
o
a
t
,
c
o
m
m
e
n
t
s
=
′
#
′
,
d
e
l
i
m
i
t
e
r
=
N
o
n
e
,
c
o
n
v
e
r
t
e
r
s
=
N
o
n
e
,
s
k
i
p
r
o
w
s
=
0
,
u
s
e
c
o
l
s
=
N
o
n
e
,
u
n
p
a
c
k
=
F
a
l
s
e
,
n
d
m
i
n
=
0
,
e
n
c
o
d
i
n
g
=
′
b
y
t
e
s
′
,
m
a
x
r
o
w
s
=
N
o
n
e
)
\color{blue} numpy.loadtxt(fname, dtype=float, comments='\#', delimiter=None, converters=None, skiprows=0, usecols=None, unpack=False, ndmin=0, encoding='bytes', max_rows=None)
numpy.loadtxt(fname,dtype=float,comments=′#′,delimiter=None,converters=None,skiprows=0,usecols=None,unpack=False,ndmin=0,encoding=′bytes′,maxrows=None)
① f n a m e : 文 件 路 径 。 \color{red}① fname:文件路径。 ①fname:文件路径。
② d t y p e : 数 据 类 型 , 默 认 为 f l o a t 。 \color{red}② dtype:数据类型,默认为float。 ②dtype:数据类型,默认为float。
③ c o m m e n t s : 字 符 串 或 字 符 串 组 成 的 列 表 , 默 认 为 # , 表 示 注 释 字 符 集 开 始 的 标 \color{red}③ comments: 字符串或字符串组成的列表,默认为\# ,表示注释字符集开始的标 ③comments:字符串或字符串组成的列表,默认为#,表示注释字符集开始的标 志 。 \color{red}志。 志。
④ s k i p r o w s : 跳 过 多 少 行 , 一 般 跳 过 第 一 行 表 头 。 \color{red}④ skiprows:跳过多少行,一般跳过第一行表头。 ④skiprows:跳过多少行,一般跳过第一行表头。
⑤ u s e c o l s : 元 组 ( 元 组 内 数 据 为 列 的 数 值 索 引 ) , 用 来 指 定 要 读 取 数 据 的 列 ( 第 \color{red}⑤ usecols:元组(元组内数据为列的数值索引), 用来指定要读取数据的列(第 ⑤usecols:元组(元组内数据为列的数值索引),用来指定要读取数据的列(第 一 列 为 0 ) 。 \color{red}一列为0)。 一列为0)。
⑥ u n p a c k : 当 加 载 多 列 数 据 时 是 否 需 要 将 数 据 列 进 行 解 耦 赋 值 给 不 同 的 变 量 。 \color{red}⑥ unpack:当加载多列数据时是否需要将数据列进行解耦赋值给不同的变量。 ⑥unpack:当加载多列数据时是否需要将数据列进行解耦赋值给不同的变量。
3. 文本格式选项
1.
n
u
m
p
y
.
s
e
t
_
p
r
i
n
t
o
p
t
i
o
n
s
(
p
r
e
c
i
s
i
o
n
=
N
o
n
e
,
t
h
r
e
s
h
o
l
d
=
N
o
n
e
,
e
d
g
e
i
t
e
m
s
=
N
o
n
e
,
l
i
n
e
w
i
d
t
h
=
N
o
n
e
,
s
u
p
p
r
e
s
s
=
N
o
n
e
,
n
a
n
s
t
r
=
N
o
n
e
,
i
n
f
s
t
r
=
N
o
n
e
,
f
o
r
m
a
t
t
e
r
=
N
o
n
e
,
s
i
g
n
=
N
o
n
e
,
f
l
o
a
t
m
o
d
e
=
N
o
n
e
,
∗
∗
k
w
a
r
g
)
\color{blue} numpy.set\_printoptions(precision=None,threshold=None, edgeitems=None,linewidth=None, suppress=None, nanstr=None, infstr=None,formatter=None, sign=None, floatmode=None, **kwarg)
numpy.set_printoptions(precision=None,threshold=None,edgeitems=None,linewidth=None,suppress=None,nanstr=None,infstr=None,formatter=None,sign=None,floatmode=None,∗∗kwarg)
p
r
e
c
i
s
i
o
n
:
设
置
浮
点
精
度
,
控
制
输
出
的
小
数
点
个
数
,
默
认
是
8
。
\color{red}precision:设置浮点精度,控制输出的小数点个数,默认是8。
precision:设置浮点精度,控制输出的小数点个数,默认是8。
t
h
r
e
s
h
o
l
d
:
概
略
显
示
,
超
过
该
值
则
以
“
…
”
的
形
式
来
表
示
,
默
认
是
1000
。
\color{red}threshold:概略显示,超过该值则以“…”的形式来表示,默认是1000。
threshold:概略显示,超过该值则以“…”的形式来表示,默认是1000。
l
i
n
e
w
i
d
t
h
:
用
于
确
定
每
行
多
少
字
符
数
后
插
入
换
行
符
,
默
认
为
75
。
\color{red}linewidth:用于确定每行多少字符数后插入换行符,默认为75。
linewidth:用于确定每行多少字符数后插入换行符,默认为75。
s
u
p
p
r
e
s
s
:
当
s
u
p
p
r
e
s
s
=
T
r
u
e
,
表
示
小
数
不
需
要
以
科
学
计
数
法
的
形
式
输
出
,
默
认
是
\color{red}suppress:当suppress=True,表示小数不需要以科学计数法的形式输出,默认是
suppress:当suppress=True,表示小数不需要以科学计数法的形式输出,默认是
F
a
l
s
e
。
\color{red}False。
False。
n
a
n
s
t
r
:
浮
点
非
数
字
的
字
符
串
表
示
形
式
,
默
认
n
a
n
。
\color{red}nanstr:浮点非数字的字符串表示形式,默认nan。
nanstr:浮点非数字的字符串表示形式,默认nan。
i
n
f
s
t
r
:
浮
点
无
穷
大
的
字
符
串
表
示
形
式
,
默
认
i
n
f
。
\color{red}infstr:浮点无穷大的字符串表示形式,默认inf。
infstr:浮点无穷大的字符串表示形式,默认inf。