本章主要介紹的是數據的CSV文件存取和多維數據的存取。數組
一、CSV的寫文件:spa
np.savetxt(frame, array, fmt='%.18e', delimiter=None)code
舉個栗子:用Numpy生成5 * 20的二維數組,而且把該數組保存到a.csv的文件中:orm
import numpy as np a = np.arange(100).reshape(5, 20) np.savetxt('a.csv', a, fmt='%d', delimiter=',')
二、CSV的讀文件:blog
np.loadtxt(frame, dtype=np.float, delimiter=None, unpack=False)字符串
舉個栗子:讀a.csv的文件:it
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文件有自身的侷限性,只能有效的存儲一維和二維數組。form
常規文件的存取:
一、寫文件:class
a.tofile(frame, sep=' ', format='%s')import
舉個栗子:將三維數組寫入b.dat中:
import numpy as np a = np.arange(100).reshape(5, 10, 2) a.tofile("b.dat", sep=",", format='%d')
二、讀文件:
np.fromfile(frame, dtype=float, 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的便捷文件存取:
一、寫文件:
np.save(frame, array) 或np.savez(frame, array)
二、讀文件:
np.load(frame)
舉個栗子:
a = np.arange(100).reshape(5, 10, 2) np.save("a.npy", a) b = np.load("a.npy") print(b)
備註說明:Numpy的讀文件不須要知道數據的維度便可還原成原先的維度,可是常規讀文件時必須指定文件的維度。