亲宝软件园·资讯

展开

(三)初识NumPy(数据CSV文件存取和多维数据的存取)

Zan_Eric 人气:0

本章主要介绍的是数据的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的读文件不需要知道数据的维度即可还原成原先的维度,但是常规读文件时必须指定文件的维度。

加载全部内容

相关教程
猜你喜欢
用户评论