• Numpy数组数据文件的读写


    一、引言

    读写数据文件的重要性就不必多说了。

    二、读取列表形式数据的文件

    1、我们写几行CSV格式(列表形式,两值之间逗号隔开)的数据。

    id,height,age
    1,175,20
    2,168,18
    3,177,30
    4,142,12

    使用genfromtxt()函数读取数据。接收三个参数:文件名,分隔符,是否有列标题

    In [4]: a = np.genfromtxt('test.csv',delimiter=',',names=True)
    
    In [5]: a
    Out[5]:
    array([( 1.,  175.,  20.), ( 2.,  168.,  18.), ( 3.,  177.,  30.),
           ( 4.,  142.,  12.)],
          dtype=[('id', '<f8'), ('height', '<f8'), ('age', '<f8')])

    这个函数的包含两层循环:第一层循环每一行,第二层循环将每一行中的多个值分开后转化,一次插入所创建的数组。优点是能够处理文件中缺失的数据(Nan)。

    2、我们试图删除几个元素看看

    id,height,age
    1,175,
    2,168,18
    ,177,30
    4,,12
    In [6]: a = np.genfromtxt('test.csv',delimiter=',',names=True)
    
    In [7]: a
    Out[7]:
    array([(  1.,  175.,  nan), (  2.,  168.,  18.), ( nan,  177.,  30.),
           (  4.,   nan,  12.)],
          dtype=[('id', '<f8'), ('height', '<f8'), ('age', '<f8')])

    可见,genfromtxt()函数将缺失的数据填充为nan值(应该是no a number)

    3、获取某行或者某列

    In [8]: a[0]
    Out[8]: ( 1.,  175.,  nan)
    
    In [9]: a['height']
    Out[9]: array([ 175.,  168.,  177.,   nan])

    三、二进制文件读写

    save()已二进制格式保存数据,参数:文件名(不用后缀),数据。

    load()从二进制文件读取数据,参数:文件名(带后缀)

    1.执行sava()后,在本目录创建了my_data.npy二进制文件

    In [10]: data = np.random.random((3,3))
    
    In [11]: data
    Out[11]:
    array([[ 0.35264296,  0.81619681,  0.24089159],
           [ 0.31230919,  0.14782997,  0.53526203],
           [ 0.5505135 ,  0.64876637,  0.17538648]])
    
    In [12]: np.save('my_data',data)

    2、二进制文件数据读取,以文件名作为参数,并带上.npy扩展名

    In [13]: np.load('my_data.npy')
    Out[13]:
    array([[ 0.35264296,  0.81619681,  0.24089159],
           [ 0.31230919,  0.14782997,  0.53526203],
           [ 0.5505135 ,  0.64876637,  0.17538648]])
  • 相关阅读:
    Weka回归
    R语言知识体系概览
    HDU 1020 Encoding POJ 3438 Look and Say
    FtpClient.storeFile返回false解决方法
    Docker安装ruby2.1
    定制一套属于自己的博客样式(转载)
    Docker常见问题解决
    The method getJspApplicationContext(ServletContext) is undefined for the type
    解决httpServletRequest.getParameter获取不到参数
    淘宝知名工程师(转载)
  • 原文地址:https://www.cnblogs.com/luhuan/p/8028592.html
Copyright © 2020-2023  润新知