NumPy数据存取

NumPy数组存取

CSV文件

  • CSV文件简介

CSV文件(Comma-Separated Value)是一种常见的文件格式,用来存储批量数据。例如:一个表格,存储为CSV文件后,不论表头还是数组,都以逗号分隔的方式,按照表格原来的形状存储。

  • NumPy导出为CSV文件

    1. np.savetxt(frame, array, fmt = ‘%. 18e’, delimiter = None);
    2. frame:文件、字符串产生器,可以是.gz或.bz2的压缩文件;
    3. array:存入文件的数组;
    4. fmt:写入文件的格式,例如:%d, %.2f, %.18e;
    5. delimiter:分割字符串,默认是空格,CSV格式要求改成逗号。
a = np.arange(100).reshape(5, 20)
np.savetxt('a.csv', a, fmt = '%d', delimiter = ',')
  • NumPy读取CSV文件

    1. np.loadtst(frame, dtype = np.float, delimiter = Node, unpack = False);
    2. frame:文件、字符串产生器,可以是.gz或.bz2的压缩文件;
    3. dtype:数据类型,可选;
    4. delimiter:分割字符串,默认是空格,CSV格式要求改成逗号;
    5. unpack:默认为Flase,如果为True,读入属性将分别写入不同变量。
b = np.loadtxt('a.csv', dtype = np.int, delimiter = ',')
  • CSV文件的局限性

    1. CSV只能有效存储一维和二维数组;
    2. np.savetxt()和np.loadtxt()只能有效存取一维和二维数组。

多维数据存取

  • 存储文件

    1. .tofile(frame, sep = ”, format = ‘%s’);
    2. frame:文件、字符创;
    3. sep:数据分割字符串,如果是空串,写入文件为二进制;
    4. format:写入数据的格式。
a = np.arange(100).reshape(5, 10, 2)
a.tofile('b.dat', sep = ',', format = '%d')
# 这样生成的b.dat文件不包含维度信息,只是一维地把0到99用逗号分隔后排开
  • 读取文件

    1. np.fromfile(frame, dtype = float, count = - 1, sep = ”)
    2. frame:文件、字符串;
    3. dtype:读取的数据类型;
    4. count:读入元素个数,-1表示读入整个文件;
    5. sep:数据分割字符串,如果是空串,写入文件为二进制;
a = np.arange(100).reshape(5, 10, 2)
a.tofile("b.dat", dtype = np.int, sep = ',')
c = np.fromfile('b.dat', dtype = np.int, sep = ',')
c
# 输出结果:array([0,1 ,2, ..., 97, 98, 99])

注意:该方法需要读取时知道存入文件时数组的维度和元素类型,也就是说,np.tofile()和np.fromfile()需要配合使用。

  • NumPy的便捷文件存取

    1. np.save(frame, array)或np.savez(frame, array)
    2. frame:文件名,以.npy为扩展名,压缩扩展名为.npz
    3. array:数组变量
    4. np.load(fname)
    5. fname:文件名,以.npy或.npz为扩展名。
a = arange(100).reshape(5, 10, 2)
np.savw('a.npy', a)
b = np.load('a.npy')
# b与a一致

你可能感兴趣的:(python数据分析)