Python——numpy文件存取
? frame : 文件、字元串或產生器,可以是.gz或.bz2的壓縮文件
? array : 存入文件的數組? fmt : 寫入文件的格式,例如:%d %.2f %.18e? delimiter : 分割字元串,默認是任何空格栗子a=np.arange(100).reshape(5,20)np.savetxt(a.csv,a,fmt=%d,delimiter=,)
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,99b=np.arange(100).reshape(5,20)np.savetxt(b.csv,a,fmt=%.1f,delimiter=,)
np.loadtxt(frame, dtype=np.float, delimiter=None, unpack=False)
? frame : 文件、字元串或產生器,可以是.gz或.bz2的壓縮文件? dtype : 數據類型,可選? delimiter : 分割字元串,默認是任何空格? unpack : 如果True,讀入屬性將分別寫入不同變數c=np.loadtxt(b.csv,delimiter=,)cOut[55]: array([[ 0., 1., 2., ..., 17., 18., 19.], [ 20., 21., 22., ..., 37., 38., 39.], [ 40., 41., 42., ..., 57., 58., 59.], [ 60., 61., 62., ..., 77., 78., 79.], [ 80., 81., 82., ..., 97., 98., 99.]])c=np.loadtxt(b.csv,dtype=np.int,delimiter=,)cOut[57]: array([[ 0, 1, 2, ..., 17, 18, 19], [20, 21, 22, ..., 37, 38, 39], [40, 41, 42, ..., 57, 58, 59], [60, 61, 62, ..., 77, 78, 79], [80, 81, 82, ..., 97, 98, 99]])
任意維度文件的存取
a.tofile(frame, sep=, format=%s)? frame : 文件、字元串? sep : 數據分割字元串,如果是空串,寫入文件為二進位? format : 寫入數據的格式a=np.arange(100).reshape(5,10,2)a.tofile(b.dat,sep=,,format=%d)
a=np.arange(100).reshape(5,10,2)a.tofile(b.dat,format=%d)
? frame : 文件、字元串
? dtype : 讀取的數據類型? count : 讀入元素個數,‐1表示讀入整個文件? sep : 數據分割字元串,如果是空串,寫入文件為二進位a=np.arange(100).reshape(5,10,2)a.tofile(b.dat,sep=,,format=%d)c=np.fromfile(b.dat,dtype=np.int,sep=,)
cOut[70]: array([ 0, 1, 2, ..., 97, 98, 99])c=np.fromfile(b.dat,dtype=np.int,sep=,).reshape(5,10,2)cOut[72]: array([[[ 0, 1], [ 2, 3], [ 4, 5], ..., [14, 15], [16, 17], [18, 19]], ..., ..., [94, 95], [96, 97], [98, 99]]])
a=np.arange(100).reshape(5,10,2)a.tofile(b.dat,format=%d)c=np.fromfile(b.dat,dtype=np.int).reshape(5,10,2)cOut[76]: array([[[ 0, 1], [ 2, 3], [ 4, 5], ..., [14, 15], [16, 17], [18, 19]], ..., ..., [94, 95], [96, 97], [98, 99]]])
可以通過元數據文件來存儲額外信息
numpy 便捷文件存取np.save(fname, array) 或np.savez(fname, array)? fname : 文件名,以.npy為擴展名,壓縮擴展名為.npz? array : 數組變數np.load(fname)? fname : 文件名,以.npy為擴展名,壓縮擴展名為.npza=np.arange(100).reshape(5,10,2)np.save(a.npy,a)b=np.load(a.npy)bOut[80]: array([[[ 0, 1], [ 2, 3], [ 4, 5], ..., [14, 15], [16, 17], [18, 19]],
推薦閱讀:
※為什麼 Python 的類不構成作用域(scope)?
※python適合做數據分析還是做開發?
※在數學建模問題中,matlab和Python各自的特點有哪些?
※學習python有什麼用?python的實際應用有哪些?
※python入門教程,求知友推薦?