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 相关文章推荐
Python3 queue队列模块详细介绍
Jan 05 Python
python石头剪刀布小游戏(三局两胜制)
Jan 20 Python
利用python list完成最简单的DB连接池方法
Aug 09 Python
解决Django migrate不能发现app.models的表问题
Aug 31 Python
Python:合并两个numpy矩阵的实现
Dec 02 Python
python实现布隆过滤器及原理解析
Dec 08 Python
解决Django提交表单报错:CSRF token missing or incorrect的问题
Mar 13 Python
在PyTorch中使用标签平滑正则化的问题
Apr 03 Python
python+selenium 简易地疫情信息自动打卡签到功能的实现代码
Aug 22 Python
Python 实现一个简单的web服务器
Jan 03 Python
pycharm 实现调试窗口恢复
Feb 05 Python
Python3接口性能测试实例代码
Jun 20 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
php5.2以下版本无json_decode函数的解决方法
2014/05/25 PHP
给WordPress中的留言加上楼层号的PHP代码实例
2015/12/14 PHP
如何使用微信公众平台开发模式实现多客服
2016/01/06 PHP
php服务器的系统详解
2019/10/12 PHP
top.location.href 没有权限 解决方法
2008/08/05 Javascript
JavaScript入门教程(1) 什么是JS
2009/01/31 Javascript
addEventListener()第三个参数useCapture (Boolean)详细解析
2013/11/07 Javascript
js 模式窗口(模式对话框和非模式对话框)的使用介绍
2014/07/17 Javascript
jQuery操作DOM之获取表单控件的值
2015/01/23 Javascript
jQuery解析json数据实例分析
2015/11/24 Javascript
使用jQuery.form.js/springmvc框架实现文件上传功能
2016/05/12 Javascript
React实现双向绑定示例代码
2016/09/19 Javascript
jQuery中DOM节点删除之empty与remove
2017/01/20 Javascript
详解vue-cli脚手架build目录中的dev-server.js配置文件
2017/11/24 Javascript
利用angular、react和vue实现相同的面试题组件
2018/02/19 Javascript
详解nodejs通过响应回写的方式渲染页面资源
2018/04/07 NodeJs
使用layui的layer组件做弹出层的例子
2019/09/27 Javascript
Python 对象中的数据类型
2017/05/13 Python
Python爬虫通过替换http request header来欺骗浏览器实现登录功能
2018/01/07 Python
Django添加KindEditor富文本编辑器的使用
2018/10/24 Python
使用 Python 快速实现 HTTP 和 FTP 服务器的方法
2019/07/22 Python
python用win32gui遍历窗口并设置窗口位置的方法
2019/07/26 Python
对pytorch中的梯度更新方法详解
2019/08/20 Python
Django项目后台不挂断运行的方法
2019/08/31 Python
关于python 的legend图例,参数使用说明
2020/04/17 Python
Tensorflow全局设置可见GPU编号操作
2020/06/30 Python
flask框架中的cookie和session使用
2021/01/31 Python
德国高尔夫商店:Par71.de
2020/11/29 全球购物
社区戒毒工作方案
2014/06/04 职场文书
2014年教师节演讲稿
2014/09/03 职场文书
党员学习中共十八大思想报告
2014/09/12 职场文书
2014年社区卫生工作总结
2014/12/18 职场文书
2015年“7.11”世界人口日宣传活动方案
2015/05/06 职场文书
2016年教师学习廉政准则心得体会
2016/01/20 职场文书
Python 如何安装Selenium
2021/05/06 Python
SQL Server的存储过程与触发器以及系统函数和自定义函数
2022/04/10 SQL Server