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中的测试模块unittest和doctest的使用教程
Apr 14 Python
Python将图片批量从png格式转换至WebP格式
Aug 22 Python
Python文件与文件夹常见基本操作总结
Sep 19 Python
python实现守护进程、守护线程、守护非守护并行
May 05 Python
Python高级用法总结
May 26 Python
Django压缩静态文件的实现方法详析
Aug 26 Python
python构建指数平滑预测模型示例
Nov 21 Python
Python调用Windows命令打印文件
Feb 07 Python
用python介绍4种常用的单链表翻转的方法小结
Feb 24 Python
Python如何使用bokeh包和geojson数据绘制地图
Mar 21 Python
python利用Excel读取和存储测试数据完成接口自动化教程
Apr 30 Python
python实现图片转字符画
Feb 19 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
2019年中国咖啡业现状与发展趋势
2021/03/04 咖啡文化
PHP mkdir()无写权限的问题解决方法
2014/06/19 PHP
WordPress中获取页面链接和标题的相关PHP函数用法解析
2015/12/17 PHP
PHP Post获取不到非表单数据的问题解决办法
2018/02/27 PHP
飞鱼(shqlsl) javascript作品集
2006/12/16 Javascript
40款非常有用的 jQuery 插件推荐(系列一)
2011/12/21 Javascript
javascript学习笔记(十六) 系统对话框(alert、confirm、prompt)
2012/06/20 Javascript
利用jQuery实现CheckBox全选/全不选/反选的简单代码
2016/05/31 Javascript
easyui combobox开启搜索自动完成功能的实例代码
2016/11/08 Javascript
微信小程序 上传头像的实例详解
2017/10/27 Javascript
vue中使用ueditor富文本编辑器
2018/02/08 Javascript
create-react-app修改为多页面支持的方法
2018/05/17 Javascript
对vuejs的v-for遍历、v-bind动态改变值、v-if进行判断的实例讲解
2018/08/27 Javascript
浅谈Vue页面级缓存解决方案feb-alive(上)
2019/04/14 Javascript
webpack结合express实现自动刷新的方法
2019/05/07 Javascript
javascript利用键盘控制小方块的移动
2020/04/20 Javascript
vue-video-player 断点续播的实现
2021/02/01 Vue.js
[03:18]【TI9纪实】社区大触GL与木木
2019/08/25 DOTA
Python中__init__和__new__的区别详解
2014/07/09 Python
python结合selenium获取XX省交通违章数据的实现思路及代码
2016/06/26 Python
Python程序中设置HTTP代理
2016/11/06 Python
教大家玩转Python字符串处理的七种技巧
2017/03/31 Python
Python通过matplotlib画双层饼图及环形图简单示例
2017/12/15 Python
对Tensorflow中的矩阵运算函数详解
2018/07/27 Python
python3+selenium实现qq邮箱登陆并发送邮件功能
2019/01/23 Python
python开发入门——列表生成式
2020/09/03 Python
python中turtle库的简单使用教程
2020/11/11 Python
Python爬虫入门教程01之爬取豆瓣Top电影
2021/01/24 Python
MVMT手表官方网站:时尚又实惠的高品质手表
2016/12/04 全球购物
汽车销售顾问求职自荐信
2014/01/01 职场文书
茶叶店创业计划书范文
2014/01/19 职场文书
小班下学期幼儿评语
2014/12/30 职场文书
个人工作能力自我评价
2015/03/05 职场文书
超市收银员岗位职责
2015/04/07 职场文书
毕业班班主任工作总结2015
2015/07/23 职场文书
Java服务调用RestTemplate与HttpClient的使用详解
2022/06/21 Java/Android