码迷,mamicode.com
首页 > 编程语言 > 详细

Numpy数组数据文件的读写

时间:2017-12-12 21:48:38      阅读:279      评论:0      收藏:0      [点我收藏+]

标签:文件中   读写   blog   height   save   rom   style   number   之间   

一、引言

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

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

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

 

Numpy数组数据文件的读写

标签:文件中   读写   blog   height   save   rom   style   number   之间   

原文地址:http://www.cnblogs.com/luhuan/p/8028592.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!