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

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

 1、數據的CSV文件存取

一、CSV的寫文件:spa

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

  1. frame:文件、字符串或產生器,能夠是.gz或.bz的壓縮文件;
  2. array:存入文件的數組;
  3. fmt:寫入文件的格式,例如:%d、%.2f、%.18e;
  4. delimiter:分割字符串,默認是任何空格。

舉個栗子:用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)字符串

  1. frame:文件、字符串或產生器,能夠是.gz或.bz的壓縮文件;
  2. dtype:數據類型,可選;
  3. delimiter:分割字符串,默認是任何空格;
  4. unpack:若是True,讀入屬性將分別寫入不一樣變量。

舉個栗子:讀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

 2、多維數據的存取

常規文件的存取:
一、寫文件:class

a.tofile(frame, sep=' ', format='%s')import

  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')

二、讀文件:
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的便捷文件存取:

 一、寫文件:
np.save(frame, array)   或np.savez(frame, array)

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

二、讀文件:

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的讀文件不須要知道數據的維度便可還原成原先的維度,可是常規讀文件時必須指定文件的維度。

相關文章
相關標籤/搜索