數據存取方法
-
數據的CSV文件存取
-
保存
用法
np.savetxt(frame, array, fmt='%.18e', delimiter=None)
frame:文件、字符串或產生器,可以是.gz或.bz2的壓縮文件
array:存入文件的數組
fmt:寫入文件的格式,例如:%d %.2d %.18e
delimiter : 分隔字符串,默認是任何空格
a = np.arange(24).reshape((3, 8)) np.savetxt('a.csv', a, fmt='%d', delimiter=',')
‘a.csv’表示保存後的文件名是a.csv,a是要保存的數組,fmt=‘%d’是元素以整數類型保存,delimiter=’,‘表示元素間以’,'分隔
b = np.arange(24).reshape((2, 3, 4)) np.savetxt('b.csv', b, fmt='%.2f', delimiter='^')
csv文件不支持保存2維以上數據
否則會報錯 ValueError: Expected 1D or 2D array, got 3D array instead
-
讀取
d = np.loadtxt('a.csv', delimiter=',') print(d) """ [[ 0. 1. 2. 3. 4. 5. 6. 7.] [ 8. 9. 10. 11. 12. 13. 14. 15.] [16. 17. 18. 19. 20. 21. 22. 23.]] """
-
-
多維數組的存取
-
保存
a.tofile(frame, sep='', format='%s')
frame : 文件、字符串
sep : 數據分割字符串,如果是空串,寫入文件爲二進制
format : 寫入數據的格式
a = np.arange(24).reshape((2, 3, 4)) a.tofile('a.dat', sep=',', format='%d')
注意:如果sep=’’,即數據分隔字符串是空串,寫入的文件爲二進制。
a.dat
0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23
多維數組保存時,會轉化爲1維
ubuntu讀取二進制文件
- sudo apt-get install libdata-hexdumper-perl
- hexdump your_binary_file
-
讀取
np.fromfile(frame, dtype=np.float, count=-1, sep='')
frame : 文件、字符串
dtype : 讀取的數據類型
count : 讀入元素個數,‐1表示讀入整個文件
sep : 數據分割字符串,如果是空串,寫入文件爲二進制
c = np.fromfile('a.dat', dtype=np.int, sep=',').reshape((2, 3, 4)) 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]]] """
-
-
numpy的便捷文件存取
-
保存
用法
np.save(fname, array) 或 np.savez(fname, array)
fname : 文件名,以.npy爲擴展名,壓縮擴展名爲.npz
array : 數組變量
a = np.arange(24).reshape((2, 3, 4)) np.save('a.npy', a)
-
讀取
用法
np.load(fname)
fname: 文件名,以.npy爲擴展名,壓縮擴展名爲.npz
實例
b = np.load('a.npy') 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]]] """
-