4_numpy_文件讀取

數據存取方法

原文檔

  1. 數據的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.]]
        """
      
  2. 多維數組的存取

    • 保存

        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讀取二進制文件

      1. sudo apt-get install libdata-hexdumper-perl
      2. 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]]]
        """
      
  3. 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]]]
        """
      
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章