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 Mysql数据库操作 Perl操作Mysql数据库
Jan 12 Python
Python程序员开发中常犯的10个错误
Jul 07 Python
举例简单讲解Python中的数据存储模块shelve的用法
Mar 03 Python
Python操作MongoDB详解及实例
May 18 Python
python Web开发你要理解的WSGI & uwsgi详解
Aug 01 Python
对python 合并 累加两个dict的实例详解
Jan 21 Python
浅谈pyqt5在QMainWindow中布局的问题
Jun 21 Python
python画图的函数用法以及技巧
Jun 28 Python
自定义django admin model表单提交的例子
Aug 23 Python
python中栈的原理及实现方法示例
Nov 27 Python
keras获得model中某一层的某一个Tensor的输出维度教程
Jan 24 Python
python使用scapy模块实现ping扫描的过程详解
Jan 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
DOTA2 玩家自创拉野攻略 特色英雄快速成长篇
2020/04/20 DOTA
第十五节--Zend引擎的发展
2006/11/16 PHP
体育彩票排列三组选三算法分享
2014/03/07 PHP
PHP中auto_prepend_file与auto_append_file用法实例分析
2014/09/22 PHP
js获取RadioButtonList的Value/Text及选中值等信息实现代码
2013/03/05 Javascript
Jquery实现点击切换图片并隐藏显示内容(2种方法实现)
2013/04/11 Javascript
jquery选择器大全 全面详解jquery选择器
2014/03/06 Javascript
JS+CSS实现的经典tab选项卡效果代码
2015/09/16 Javascript
JavaScript原生xmlHttp与jquery的ajax方法json数据格式实例
2015/12/04 Javascript
解析jquery easyui tree异步加载子节点问题
2017/03/08 Javascript
node实现的爬虫功能示例
2018/05/04 Javascript
vue-cli项目根据线上环境分别打出测试包和生产包
2018/05/23 Javascript
layui问题之模拟select点击事件的实例讲解
2018/08/15 Javascript
基于vue中对鼠标划过事件的处理方式详解
2018/08/22 Javascript
js实现同一个页面,多个enter事件绑定的示例
2018/10/10 Javascript
原生javascript实现连连看游戏
2019/01/03 Javascript
mpvue微信小程序的接口请求fly全局拦截代码实例
2019/11/13 Javascript
小程序自定义模板实现吸顶功能
2020/01/08 Javascript
Vue强制组件重新渲染的方法讨论
2020/02/03 Javascript
[02:32]DOTA2英雄基础教程 美杜莎
2014/01/07 DOTA
python统计字符串中指定字符出现次数的方法
2015/04/04 Python
Python时间序列处理之ARIMA模型的使用讲解
2019/04/02 Python
Python在OpenCV里实现极坐标变换功能
2019/09/02 Python
Python实现分数序列求和
2020/02/25 Python
Python Django搭建网站流程图解
2020/06/13 Python
使用ITK-SNAP进行抠图操作并保存mask的实例
2020/07/01 Python
IdealFit官方网站:女性蛋白质、补充剂和运动服装
2019/03/24 全球购物
广州足迹信息技术有限公司Java软件工程师试题
2014/02/15 面试题
化工专业大学生职业生涯规划书
2014/01/14 职场文书
《童趣》教学反思
2014/02/19 职场文书
2015年小学英语教师工作总结
2015/05/12 职场文书
如何写新闻稿
2015/07/18 职场文书
领导干部学习三严三实心得体会
2016/01/05 职场文书
nginx配置ssl实现https的方法示例
2021/03/31 Servers
Python中使用Lambda函数的5种用法
2021/04/01 Python
CSS 实现Chrome标签栏的技巧
2021/08/04 HTML / CSS