(三)初识NumPy(数据CSV文件存取和多维数据的存取)
Zan_Eric 人气:0本章主要介绍的是数据的CSV文件存取和多维数据的存取。
一、数据的CSV文件存取
1、CSV的写文件:
np.savetxt(frame, array, fmt='%.18e', delimiter=None)
- frame:文件、字符串或产生器,可以是.gz或.bz的压缩文件;
- array:存入文件的数组;
- fmt:写入文件的格式,例如:%d、%.2f、%.18e;
- delimiter:分割字符串,默认是任何空格。
举个栗子:用Numpy生成5 * 20的二维数组,并且把该数组保存到a.csv的文件中:
import numpy as np a = np.arange(100).reshape(5, 20) np.savetxt('a.csv', a, fmt='%d', delimiter=',')
2、CSV的读文件:
np.loadtxt(frame, dtype=np.float, delimiter=None, unpack=False)
- frame:文件、字符串或产生器,可以是.gz或.bz的压缩文件;
- dtype:数据类型,可选;
- delimiter:分割字符串,默认是任何空格;
- unpack:如果True,读入属性将分别写入不同变量。
举个栗子:读a.csv的文件:
b = np.loadtxt('a.csv', dtype=np.int, delimiter=',') print(b) [[ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19] [20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39] [40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59] [60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79] [80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99]]
备注:但是CSV文件有自身的局限性,只能有效的存储一维和二维数组。
二、多维数据的存取
常规文件的存取:
1、写文件:
a.tofile(frame, sep=' ', format='%s')
- frame:文件、字符串;
- sep:数据分割字符串,如果是空串,写入文件为二进制;
- format:写入数据格式。
举个栗子:将三维数组写入b.dat中:
import numpy as np a = np.arange(100).reshape(5, 10, 2) a.tofile("b.dat", sep=",", format='%d')
2、读文件:
np.fromfile(frame, dtype=float, count=-1, sep=' ')
- frame:文件、字符串;
- dtype:读取的数据类型;
- count:读入元素个数,-1表示读入整个文件;
- sep:数据分割字符串,如果是空串,读入文件为二进制。
举个栗子:将b.dat文件读文件:
c = np.fromfile("b.dat", dtype=np.int, sep=",").reshape(5, 10, 2) print(c)
[[[ 0 1] [ 2 3] [ 4 5] [ 6 7] [ 8 9] [10 11] [12 13] [14 15] [16 17] [18 19]] [[20 21] [22 23] [24 25] [26 27] [28 29] [30 31] [32 33] [34 35] [36 37] [38 39]] [[40 41] [42 43] [44 45] [46 47] [48 49] [50 51] [52 53] [54 55] [56 57] [58 59]] [[60 61] [62 63] [64 65] [66 67] [68 69] [70 71] [72 73] [74 75] [76 77] [78 79]] [[80 81] [82 83] [84 85] [86 87] [88 89] [90 91] [92 93] [94 95] [96 97] [98 99]]]
Numpy的便捷文件存取:
1、写文件:
np.save(frame, array) 或np.savez(frame, array)
- frame:文件名,以.npy为扩展名,压缩扩展名为.npz;
- array:数组变量。
2、读文件:
np.load(frame)
- frame:文件名,以.npy为扩展名,压缩扩展名为.npz;
举个栗子:
a = np.arange(100).reshape(5, 10, 2) np.save("a.npy", a) b = np.load("a.npy") print(b)
备注说明:Numpy的读文件不需要知道数据的维度即可还原成原先的维度,但是常规读文件时必须指定文件的维度。
加载全部内容