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根据路径导入模块的方法
Sep 30 Python
python开发之thread实现布朗运动的方法
Nov 11 Python
Python的re模块正则表达式操作
May 25 Python
利用matplotlib+numpy绘制多种绘图的方法实例
May 03 Python
python中利用Future对象异步返回结果示例代码
Sep 07 Python
Python3 Random模块代码详解
Dec 04 Python
在cmder下安装ipython以及环境的搭建
Oct 19 Python
浅谈Python3识别判断图片主要颜色并和颜色库进行对比的方法
Oct 25 Python
Python中生成一个指定长度的随机字符串实现示例
Nov 06 Python
关于Numpy数据类型对象(dtype)使用详解
Nov 27 Python
tensorflow2.0保存和恢复模型3种方法
Feb 03 Python
Python中zipfile压缩包模块的使用
May 14 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中的session永不过期的解决思路及实现方法分享
2011/04/20 PHP
PHP中替换键名的简易方法示例详解
2014/01/07 PHP
phpQuery让php处理html代码像jQuery一样方便
2015/01/06 PHP
php实现将wav文件转换成图像文件并在页面中显示的方法
2015/04/21 PHP
PHP中static关键字以及与self关键字的区别
2015/07/01 PHP
PHP读取配置文件类实例(可读取ini,yaml,xml等)
2015/07/28 PHP
用js实现上传图片前的预览(TX的面试题)
2007/08/14 Javascript
extjs grid取到数据而不显示的解决
2008/12/29 Javascript
jQuery弹出层插件Lightbox_me使用指南
2015/04/21 Javascript
jQuery实现微信长按识别二维码功能
2016/08/26 Javascript
javascript 解决浏览器不支持的问题
2016/09/24 Javascript
Angular2中如何使用ngx-translate进行国际化
2017/05/21 Javascript
简单的三步vuex入门
2018/05/20 Javascript
微信小程序 MinUI组件库系列之badge徽章组件示例
2018/08/20 Javascript
JS中通过url动态获取图片大小的方法小结(两种方法)
2018/10/31 Javascript
nodejs微信开发之接入指南
2019/03/17 NodeJs
微信小程序iOS下拉白屏晃动问题解决方案
2019/10/12 Javascript
react 生命周期实例分析
2020/05/18 Javascript
javascript递归函数定义和用法示例分析
2020/07/22 Javascript
vue3.0 上手体验
2020/09/21 Javascript
python重试装饰器示例
2014/02/11 Python
Python中的元类编程入门指引
2015/04/15 Python
对python3 中方法各种参数和返回值详解
2018/12/15 Python
Python实现计算对象的内存大小示例
2019/07/10 Python
对python中基于tcp协议的通信(数据传输)实例讲解
2019/07/22 Python
Pyinstaller 打包exe教程及问题解决
2019/08/16 Python
django admin 自定义替换change页面模板的方法
2019/08/23 Python
HTML5 标准将把互联网视频扔回到黑暗时代
2010/02/10 HTML / CSS
新西兰珠宝品牌:Michael Hill
2017/09/16 全球购物
大韩航空官方网站:Korean Air
2017/10/25 全球购物
Omio法国:全欧洲低价大巴、火车和航班搜索和比价
2017/11/13 全球购物
中国专业的音频分享平台:喜马拉雅
2019/05/24 全球购物
环保建议书作文
2014/03/12 职场文书
2015应届毕业生自荐信范文
2015/03/05 职场文书
python工具dtreeviz决策树可视化和模型可解释性
2022/03/03 Python
PyTorch device与cuda.device用法
2022/04/03 Python