Numpy之文件存取的示例代码


Posted in Python onAugust 03, 2018

上一篇中我们简要带过了Numpy的数据持久化,在这一篇中将要具体说明Numpy提供的文件存取功能。Numpy可以将数组保存至二进制文件、文本文件,同时支持将多个数组保存至一个文件中。

1. np.tofile() & np.fromfile()

import numpy as np
import os

os.chdir("d:\\")
a = np.arange(0,12)
a.reshape(3,4)
array([[ 0, 1, 2, 3],
    [ 4, 5, 6, 7],
    [ 8, 9, 10, 11]])

a.tofile("a.bin")                  #保存至a.bin

b = np.fromfile("a.bin", dtype=np.int32) #从文件中加载数组,错误的dtype会导致错误的结果
array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11])

b.reshape(3,4)
array([[ 0, 1, 2, 3],
    [ 4, 5, 6, 7],
    [ 8, 9, 10, 11]])
#读取的数据将为一维数组,需要使用reshape改变其数组结构

2. np.save() & np.load() & np.savez()

load()和save()用Numpy专用的二进制格式保存数据,它们会自动处理元素类型和形状等信息。savez()提供了将多个数组存储至一个文件的能力,调用load()方法返回的对象,可以使用数组名对各个数组进行读取。默认数组名arr_0,arr_1,arr_2......

np.save("a.npy", a.reshape(3,4))
c = np.load("a.npy")
c
array([[ 0, 1, 2, 3],
    [ 4, 5, 6, 7],
    [ 8, 9, 10, 11]])

多个数组存储至一个文件:

a = np.array([[1,2,3],[4,5,6]])
b = np.arange(0,1.0,0.1)
c = np.sin(b)
np.savez("result.npz", a, b, sin_arr=c) #使用sin_arr命名数组c
r = np.load("result.npz") #加载一次即可
r["arr_0"]
array([[1, 2, 3],
    [4, 5, 6]])
r["arr_1"]
array([ 0. , 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9])
r["sin_arr"]
array([ 0.    , 0.09983342, 0.19866933, 0.29552021, 0.38941834,
    0.47942554, 0.56464247, 0.64421769, 0.71735609, 0.78332691])

可以使用解压软件解压缩.npz文件会得到存储的各个数组对应的.npy文件以便进行遍历。

3. savetxt() & loadtxt()

a = np.arange(0,12,0.5).reshape(4,-1)
a
array([[ 0. ,  0.5,  1. ,  1.5,  2. ,  2.5],
    [ 3. ,  3.5,  4. ,  4.5,  5. ,  5.5],
    [ 6. ,  6.5,  7. ,  7.5,  8. ,  8.5],
    [ 9. ,  9.5, 10. , 10.5, 11. , 11.5]])
np.savetxt("a.txt", a)
np.loadtxt("a.txt")
array([[ 0. ,  0.5,  1. ,  1.5,  2. ,  2.5],
    [ 3. ,  3.5,  4. ,  4.5,  5. ,  5.5],
    [ 6. ,  6.5,  7. ,  7.5,  8. ,  8.5],
    [ 9. ,  9.5, 10. , 10.5, 11. , 11.5]])
np.savetxt("a.txt", a, fmt="%d", delimiter=",") #指定存储数据类型为整型,分隔符为,
np.loadtxt("a.txt", delimiter=',') #以,分隔符读取
array([[ 0.,  0.,  1.,  1.,  2.,  2.],
    [ 3.,  3.,  4.,  4.,  5.,  5.],
    [ 6.,  6.,  7.,  7.,  8.,  8.],
    [ 9.,  9., 10., 10., 11., 11.]])

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python Web服务器Tornado使用小结
May 06 Python
Python采用raw_input读取输入值的方法
Aug 18 Python
介绍Python中的文档测试模块
Apr 28 Python
Python运算符重载详解及实例代码
Mar 07 Python
利用Python如何批量修改数据库执行Sql文件
Jul 29 Python
win7下python3.6安装配置方法图文教程
Jul 31 Python
python环境路径配置以及命令行运行脚本
Apr 02 Python
Python人工智能之路 jieba gensim 最好别分家之最简单的相似度实现
Aug 13 Python
Python3如何对urllib和urllib2进行重构
Nov 25 Python
Python代码覆盖率统计工具coverage.py用法详解
Nov 25 Python
分位数回归模型quantile regeression应用详解及示例教程
Nov 02 Python
基于Python实现射击小游戏的制作
Apr 06 Python
Python数据分析matplotlib设置多个子图的间距方法
Aug 03 #Python
详解python实现识别手写MNIST数字集的程序
Aug 03 #Python
opencv python 基于KNN的手写体识别的实例
Aug 03 #Python
Flask实现图片的上传、下载及展示示例代码
Aug 03 #Python
python使用opencv驱动摄像头的方法
Aug 03 #Python
python 简单照相机调用系统摄像头实现方法 pygame
Aug 03 #Python
Python判断字符串是否为字母或者数字(浮点数)的多种方法
Aug 03 #Python
You might like
在项目中寻找代码的坏命名
2012/07/14 PHP
php 提交表单 关闭layer弹窗iframe的实例讲解
2018/08/20 PHP
怎么用javascript进行拖拽
2006/07/20 Javascript
JS 时间显示效果代码
2009/08/23 Javascript
hover的用法及live的用法介绍(鼠标悬停效果)
2013/03/29 Javascript
鼠标划过实现延迟加载并隐藏层的js代码
2013/10/11 Javascript
兼容主流浏览器的iframe自适应高度js脚本
2014/01/10 Javascript
完美兼容IE,chrome,ff的设为首页、加入收藏及保存到桌面js代码
2014/12/17 Javascript
JS+HTML5实现的前端购物车功能插件实例【附demo源码下载】
2016/10/17 Javascript
js实现漫天星星效果
2017/01/19 Javascript
基于Jquery Ajax type的4种类型(详解)
2017/08/02 jQuery
react路由配置方式详解
2017/08/07 Javascript
2种简单的js倒计时方式
2017/10/20 Javascript
JavaScript实现多态和继承的封装操作示例
2018/08/20 Javascript
angularjs使用div模拟textarea文本框的方法
2018/10/02 Javascript
Vue.js 中的 v-model 指令及绑定表单元素的方法
2018/12/03 Javascript
Vue3+elementui plus创建项目的方法
2020/12/01 Vue.js
jQuery使用hide()、toggle()函数实现相机品牌展示隐藏功能
2021/01/29 jQuery
[53:52]OG vs EG 2018国际邀请赛淘汰赛BO3 第二场 8.23
2018/08/24 DOTA
在Python中处理日期和时间的基本知识点整理汇总
2015/05/22 Python
python时间序列按频率生成日期的方法
2019/05/14 Python
Django中使用haystack+whoosh实现搜索功能
2019/10/08 Python
关于numpy中eye和identity的区别详解
2019/11/29 Python
pytorch中获取模型input/output shape实例
2019/12/30 Python
Python Socket TCP双端聊天功能实现过程详解
2020/06/15 Python
利用css3制作3D样式按钮实现代码
2013/03/18 HTML / CSS
html5实现多图片预览上传及点击可拖拽控件
2018/03/15 HTML / CSS
英国No.1文具和办公用品在线:Euroffice
2016/09/21 全球购物
介绍一下Java中的Class类
2015/04/10 面试题
预备党员思想汇报
2014/01/08 职场文书
护理人员的自我评价分享
2014/03/15 职场文书
外国人聘用意向书
2014/04/01 职场文书
广播节目策划方案
2014/05/23 职场文书
城市规划应届毕业生自荐信
2014/07/04 职场文书
2014年督导工作总结
2014/11/19 职场文书
2014年校务公开工作总结
2014/12/18 职场文书