NumPy文件存取

  1. # coding: utf-8  
  2.   
  3. # 1. tofile方法写入,fromfile方法读出。特点:二进制读写,不保存数组的形状和元素类型等信息。  
  4. #    读出的时候需要指定dtype和对读出的数组进行修改shape操作  
  5.   
  6. # In[3]:  
  7.   
  8. import numpy as np  
  9. a=np.arange(0,12)  
  10. a.shape=3,-1  
  11. a.tofile("saved_a.bin")# 保存数据。  
  12. print a  
  13. b=np.fromfile("saved_a.bin",dtype=np.int32)#读出的时候,需要指定类型,否则会出错  
  14. #注意这时候的b还是一维的。  
  15. print b.shape  
  16.   
  17. b.shape=3,-1  
  18. print b  
  19.   
  20.   
  21. # 2. load 和save方法,是numpy专用的方法,用来保留二进制格式的数据。  
  22. #    相对于tofile和fromfile ,它会自动的处理元素类型和shape  
  23.   
  24. # In[7]:  
  25.   
  26. np.save("saved_b.npy",b)  
  27.   
  28. c=np.load("saved_b.npy")  
  29.   
  30. print c  
  31.   
  32.   
  33.   
  34. # 如果要保存多个对象,则用savez,  
  35. # 其读出顺序为arr_0 arr_1 arr_2 ...  
  36.   
  37. # In[8]:  
  38.   
  39. np.savez("saved_all.npz",a,b,c)#写入多个对象  
  40. #读取多个对象  
  41. d=np.load("saved_all.npz")  
  42. print d["arr_0"]  
  43. print d["arr_1"]  
  44. print d["arr_2"]  
  45.   
  46.   
  47.   
  48. # 3. 用savetxt() 和loadtxt() 读写一维或者二维数组的文本文件,通常用来读写csv格式的文本  
  49. # 默认用空格分隔  
  50.   
  51. # In[12]:  
  52.   
  53. np.savetxt("a.txt",a)  
  54.   
  55. e=np.loadtxt("a.txt")  
  56.   
  57. print "默认:"  
  58. print e  
  59.   
  60. np.savetxt("b.txt",b,fmt="%d",delimiter=",")#可以指定用整数的格式存储,用逗号分隔。  
  61.   
  62. f=np.loadtxt("b.txt",delimiter=",")  
  63. print "指定:"  
  64. print f  
  65.   
  66.   
  67. # 4. 针对首行或者首列不是数据的文件读取,通常采用:将文件读取为字符串数组,然后取出需要的部分,转为数值数组。  
  68.   
  69. # 如: 文本文件test.csv 为  
  70. # 姓名,年龄,体重   
  71. # 张三,20,120  
  72. # 李四,23,110  
  73.   
  74. # In[14]:  
  75.   
  76. temp=np.loadtxt("test.csv",dtype=np.str,delimiter=",")  
  77. data=temp[1:,1:].astype(np.float)  
  78. print data  
  79.   
  80.   
  81. # 如果只是首行不是数据,而其它都是标准格式的数据,那么也可以只需要先读取一行,然后再将文件传给loadtxt()  
  82.   
  83. # In[16]:  
  84.   
  85. g=open("test.csv")  
  86. g.readline()  
  87. data=np.loadtxt(g,dtype=np.str,delimiter=",")  
  88. print data  
  89.   
  90.   
  91. # In[ ]:  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值