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以环状形式组合排列图片并输出的方法
Mar 17 Python
Python使用sftp实现上传和下载功能(实例代码)
Mar 14 Python
Python reduce()函数的用法小结
Nov 15 Python
Python之两种模式的生产者消费者模型详解
Oct 26 Python
python实现维吉尼亚加密法
Mar 20 Python
利用Python实现Shp格式向GeoJSON的转换方法
Jul 09 Python
django中上传图片分页三级联动效果的实现代码
Aug 30 Python
Python基于类路径字符串获取静态属性
Mar 12 Python
基于python连接oracle导并出数据文件
Apr 28 Python
Python matplotlib可视化实例解析
Jun 01 Python
浅谈Python中的模块
Jun 10 Python
keras CNN卷积核可视化,热度图教程
Jun 22 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.0内存管理改进
2007/01/22 PHP
PHP模板解析类实例
2015/07/09 PHP
PHP数组函数array_multisort()用法实例分析
2016/04/02 PHP
javascript getElementsByClassName 和js取地址栏参数
2010/01/02 Javascript
jQuery源码分析-04 选择器-Sizzle-工作原理分析
2011/11/14 Javascript
Underscore.js 1.3.3 中文注释翻译说明
2015/06/25 Javascript
使用js复制链接中的部分文字的方法
2015/07/30 Javascript
以jQuery中$.Deferred对象为例讲解promise对象是如何处理异步问题
2015/11/13 Javascript
javascript中JSON.parse()与eval()解析json的区别
2016/05/19 Javascript
基于jQuery实现表格的查看修改删除
2016/08/01 Javascript
NodeJS配置HTTPS服务实例分享
2017/02/19 NodeJs
javascript 操作cookies详解及实例
2017/02/22 Javascript
浅谈vue的iview列表table render函数设置DOM属性值的方法
2017/09/30 Javascript
在Mac下彻底卸载node和npm的方法
2018/05/16 Javascript
element-ui使用导航栏跳转路由的用法详解
2018/08/22 Javascript
利用chrome浏览器进行js调试并找出元素绑定的点击事件详解
2021/01/30 Javascript
JQuery获取可视区尺寸和文档尺寸及制作悬浮菜单示例
2019/05/14 jQuery
JS实现简单随机3D骰子
2019/10/24 Javascript
JS代码触发事件代码实例
2020/01/02 Javascript
node.js如何操作MySQL数据库
2020/10/29 Javascript
[06:53]2018DOTA2国际邀请赛寻真——勇于创新的Vici Gaming
2018/08/14 DOTA
编写Python脚本来获取mp3文件tag信息的教程
2015/05/04 Python
Python编程入门的一些基本知识
2015/05/13 Python
Python 中的Selenium异常处理实例代码
2018/05/03 Python
python对离散变量的one-hot编码方法
2018/07/11 Python
python利用ffmpeg进行录制屏幕的方法
2019/01/10 Python
Python 面向对象之封装、继承、多态操作实例分析
2019/11/21 Python
利用keras加载训练好的.H5文件,并实现预测图片
2020/01/24 Python
pycharm运行程序时看不到任何结果显示的解决
2020/02/21 Python
django使用graphql的实例
2020/09/02 Python
瑞士香水购物网站:Parfumcity.ch
2017/01/14 全球购物
Hotels.com爱尔兰:全球酒店预订
2017/02/24 全球购物
新加坡最受追捧的体验平台:Hapz
2018/01/01 全球购物
讲文明树新风演讲稿
2014/05/12 职场文书
饭店服务员岗位职责
2015/02/09 职场文书
大学生旷课检讨书1000字
2015/02/19 职场文书