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教程之全局变量用法
Jun 27 Python
Python创建xml文件示例
Mar 22 Python
Python实现基于多线程、多用户的FTP服务器与客户端功能完整实例
Aug 18 Python
Python实现的当前时间多加一天、一小时、一分钟操作示例
May 21 Python
mac安装scrapy并创建项目的实例讲解
Jun 13 Python
对Xpath 获取子标签下所有文本的方法详解
Jan 02 Python
python爬虫 urllib模块发起post请求过程解析
Aug 20 Python
python BlockingScheduler定时任务及其他方式的实现
Sep 19 Python
Python 抓取数据存储到Redis中的操作
Jul 16 Python
python在一个范围内取随机数的简单实例
Aug 16 Python
python如何快速拼接字符串
Oct 28 Python
Python 中面向接口编程
May 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
PHP 图片水印类代码
2012/08/27 PHP
php ajax异步读取rss文档数据
2016/03/29 PHP
js动态添加删除,后台取数据(示例代码)
2013/11/25 Javascript
在JS数组特定索引处指定位置插入元素
2014/07/27 Javascript
jQuery动态修改超链接地址的方法
2015/02/13 Javascript
JS实现文字放大效果的方法
2015/03/03 Javascript
JavaScript中isPrototypeOf函数作用和使用实例
2015/06/01 Javascript
简述AngularJS的控制器的使用
2015/06/16 Javascript
java中String类型变量的赋值问题介绍
2016/03/23 Javascript
15款最好的Bootstrap在线编辑器
2016/08/03 Javascript
AngularJS 执行流程详细介绍
2016/08/18 Javascript
详解堆的javascript实现方法
2016/11/29 Javascript
解析JavaScript实现DDoS攻击原理与保护措施
2016/12/26 Javascript
Three.js实现浏览器变动时进行自适应的方法
2017/09/26 Javascript
浅谈react-native热更新react-native-pushy集成遇到的问题
2017/09/30 Javascript
javascript标准库(js的标准内置对象)总结
2018/05/26 Javascript
Angular项目如何升级至Angular6步骤全纪录
2018/09/03 Javascript
vue.js基于v-for实现批量渲染 Json数组对象列表数据示例
2019/08/03 Javascript
Layui Form 自定义验证的实例代码
2019/09/14 Javascript
Vue 微信端扫描二维码苹果端却只能保存图片问题(解决方法)
2020/01/19 Javascript
微信小程序实现购物车功能
2020/11/18 Javascript
Python2.x中文乱码问题解决方法
2015/06/02 Python
python获取局域网占带宽最大3个ip的方法
2015/07/09 Python
python+matplotlib实现动态绘制图片实例代码(交互式绘图)
2018/01/20 Python
Python实现平行坐标图的绘制(plotly)方式
2019/11/22 Python
Python如何对齐字符串
2020/07/30 Python
scrapy中如何设置应用cookies的方法(3种)
2020/09/22 Python
css3实现可拖动的魔方3d效果
2019/05/07 HTML / CSS
日本卡普空电视游戏软件公司官方购物网站:e-CAPCOM
2018/07/17 全球购物
汽车专业人才自我鉴定范文
2013/12/29 职场文书
乡镇爱国卫生月活动总结
2014/06/25 职场文书
学习型党组织心得体会
2014/09/12 职场文书
2015年春节标语口号
2014/12/09 职场文书
2019教师的学习计划
2019/06/25 职场文书
我的收音机情缘
2022/04/05 无线电
python多次执行绘制条形图
2022/04/20 Python