zoukankan      html  css  js  c++  java
  • (三)初识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的读文件不需要知道数据的维度即可还原成原先的维度,但是常规读文件时必须指定文件的维度。

                  
    申明:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    关于linux下如何使用svn 客户端
    vscode 如何格式化vue(template)html代码 , 保持标签属性不换行
    echarts的一些基础笔记
    Stompjs websocket vue
    GLSL反转矩阵inverse
    【入门向】使用 MetaHook Plus 绘制 HUD
    取文件MD5 WINAPI
    BAD APPLE C++控制台程序
    查看struct或class的内存布局
    让游戏以高性能GPU(独立显卡)运行
  • 原文地址:https://www.cnblogs.com/lsyb-python/p/11905308.html
Copyright © 2011-2022 走看看