本讲主要介绍numpy提供的数据存取方法,包括数据的CSV文件存取、多维数据的存取、便捷文件存取。
更多内容请看numpy入门详细教程(五)
数据的CSV文件保存
CSV(Comma-Separated Value,逗号分隔值)
CSV是一种常见的文件格式,用来存储批量数据
上图右侧便是CSV文件的内容。
用法:
np.savetxt(frame, array, fmt='%.18e', delimiter=None)
frame:文件、字符串或产生器,可以是.gz或.bz2的压缩文件
array:存入文件的数组
fmt:写入文件的格式,例如:%d %.2d %.18e
delimiter : 分隔字符串,默认是任何空格
举例:
经过上述两行代码操作,文件便已经被保存下来,打开保存的文件后如下图所示:
在np.savetxt('a.csv', a, fmt='%d', delimiter=',')中,参数'a.csv'表示的保存后的文件的文件名是a.csv;参数a指的是要保存的数组,参数fmt='%d'表示的是元素以整数类型保存,参数dilimiter=','表示元素间以‘,’分隔
再举一个例子:
打开文件b.csv后,
注意:csv文件不支持保存多维数据。例如:
输入上述两行代码后,会报错:
数据的CSV文件读取
用法举例:
np.loadtxt(frame, dtype=np.float, delimiter=None, unpack=False)
frame : 文件、字符串或产生器,可以是.gz或.bz2的压缩文件
dtype: 数据类型,可选
delimiter : 分割字符串,默认是任何空格
unpack : 如果True,读入属性将分别写入不同变量
举例:
读取之前保存的a.csv文件
读取之前保存的b.csv文件
CSV文件的局限性:只能存取一维和二维数组,np.savetxt() np.loadtxt()只能存取一维和二维数组
多维数组的保存:
用法举例:
a.tofile(frame, sep='', format='%s')
frame : 文件、字符串
sep : 数据分割字符串,如果是空串,写入文件为二进制
format : 写入数据的格式
例子:
打开文件a.dat后,可以看到:
注意:如果sep='',即数据分隔字符串是空串,写入的文件为二进制。
查看文件b.dat的属性:
多维数组的读取:
用法举例:
np.fromfile(frame, dtype=np.float, count=-1, sep='')
frame : 文件、字符串
dtype : 读取的数据类型
count : 读入元素个数,‐1表示读入整个文件
sep : 数据分割字符串,如果是空串,写入文件为二进制
例子:
读取先前保存的文件a.dat
与下图对比:
我们发现,多维数组保存时,维度会转化为一维。
numpy的便捷文件存取:
用法举例:
np.save(fname, array) 或 np.savez(fname, array)
fname : 文件名,以.npy为扩展名,压缩扩展名为.npz
rray : 数组变量
np.load(fname)
fname: 文件名,以.npy为扩展名,压缩扩展名为.npz
例子:
查看文件a.npy
读取文件:
总结:
numpy库提供的数据存取方式有三种:
CSV文件存取:适用于一维二维数组的存取
dat文件存取:适用与多维数组的存取
便捷文件存取:优点:适用于一维二维多维数组的存取,用法最为简单便捷。缺点:保存的文件为二进制文件,该文件里的内容为二进制数据,不利于查看。
更多内容请看numpy入门详细教程(五)
注:作者在慕课上跟随嵩天老师学习python数据分析,收获良多,以上内容上作者的学习笔记。