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实现simhash算法实例
Apr 25 Python
浅谈Python中列表生成式和生成器的区别
Aug 03 Python
python编程开发之类型转换convert实例分析
Nov 13 Python
numpy返回array中元素的index方法
Jun 27 Python
将string类型的数据类型转换为spark rdd时报错的解决方法
Feb 18 Python
Django Sitemap 站点地图的实现方法
Apr 29 Python
Python 用turtle实现用正方形画圆的例子
Nov 21 Python
利用Tensorflow的队列多线程读取数据方式
Feb 05 Python
Python第三方库的几种安装方式(小结)
Apr 03 Python
python 利用zmail库发送邮件
Sep 11 Python
python 线程的五个状态
Sep 22 Python
利用Python如何画一颗心、小人发射爱心
Feb 21 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
phpinfo 系统查看参数函数代码
2009/06/05 PHP
php获取网卡的MAC地址支持WIN/LINUX系统
2014/04/30 PHP
前端必学之PHP语法基础
2016/01/01 PHP
PHP策略模式定义与用法示例
2017/07/27 PHP
PHP实现模拟http请求的方法分析
2017/12/20 PHP
JavaScript中常见陷阱小结
2010/04/27 Javascript
jQuery数据缓存功能的实现思路及简单模拟
2013/05/27 Javascript
js局部刷新页面时间具体实现
2013/07/04 Javascript
关于jquery的多个选择器的使用示例
2013/10/18 Javascript
node.js中的fs.fstat方法使用说明
2014/12/15 Javascript
JavaScript Window浏览器对象模型方法与属性汇总
2015/04/20 Javascript
bootstrap实现弹窗和拖动效果
2016/01/03 Javascript
详解JavaScript的AngularJS框架中的表达式与指令
2016/03/05 Javascript
举例讲解jQuery对DOM元素的向上遍历、向下遍历和水平遍历
2016/07/07 Javascript
AngularJS使用ng-inlude指令加载页面失败的原因与解决方法
2017/01/19 Javascript
微信小程序实战之仿android fragment可滑动底部导航栏(4)
2020/04/16 Javascript
基于JavaScript实现多级菜单效果
2017/07/25 Javascript
Vue-router 切换组件页面时进入进出动画方法
2018/09/01 Javascript
微信小程序使用gitee进行版本管理
2018/09/20 Javascript
JavaScript中.min.js和.js文件的区别讲解
2019/02/13 Javascript
vue远程加载sfc组件思路详解
2019/12/25 Javascript
JS中的继承操作实例总结
2020/06/06 Javascript
Vue实现input宽度随文字长度自适应操作
2020/07/29 Javascript
Python中的Matplotlib模块入门教程
2015/04/15 Python
PYTHON实现SIGN签名的过程解析
2019/10/28 Python
css3学习心得分享
2013/08/19 HTML / CSS
详解html5 canvas 微信海报分享(个人爬坑)
2018/01/12 HTML / CSS
爱尔兰橄榄球店:Irish Rugby Store
2019/12/05 全球购物
写一个在SQL Server创建表的SQL语句
2012/03/10 面试题
儿童生日会策划方案
2014/05/15 职场文书
2014年村委会工作总结
2014/11/24 职场文书
超市食品安全承诺书
2015/04/29 职场文书
2015年工程师工作总结
2015/04/30 职场文书
五星红旗迎风飘扬观后感
2015/06/17 职场文书
2015中秋节晚会主持词
2015/07/01 职场文书
Tensorflow与RNN、双向LSTM等的踩坑记录及解决
2021/05/31 Python