(三)初識NumPy(數據CSV文件存取和多維數據的存取)


本章主要介紹的是數據的CSV文件存取和多維數據的存取。

 一、數據的CSV文件存取

1、CSV的寫文件:

np.savetxt(frame, array, fmt='%.18e', delimiter=None)

  1. frame:文件、字符串或產生器,可以是.gz或.bz的壓縮文件;
  2. array:存入文件的數組;
  3. fmt:寫入文件的格式,例如:%d、%.2f、%.18e;
  4. 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)

  1. frame:文件、字符串或產生器,可以是.gz或.bz的壓縮文件;
  2. dtype:數據類型,可選;
  3. delimiter:分割字符串,默認是任何空格;
  4. 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')

  1. frame:文件、字符串;
  2. sep:數據分割字符串,如果是空串,寫入文件為二進制;
  3. 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=' ')

  1. frame:文件、字符串;
  2. dtype:讀取的數據類型;
  3. count:讀入元素個數,-1表示讀入整個文件;
  4. 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)

  1. frame:文件名,以.npy為擴展名,壓縮擴展名為.npz;
  2. array:數組變量。

2、讀文件:

np.load(frame)

  1. frame:文件名,以.npy為擴展名,壓縮擴展名為.npz;

舉個栗子:

a = np.arange(100).reshape(5, 10, 2)
np.save("a.npy", a)
b = np.load("a.npy")
print(b)

備注說明:Numpy的讀文件不需要知道數據的維度即可還原成原先的維度,但是常規讀文件時必須指定文件的維度。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM