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 相关文章推荐
Django1.3添加app提示模块不存在的解决方法
Aug 26 Python
Python内置函数delattr的具体用法
Nov 23 Python
Sanic框架基于类的视图用法示例
Jul 18 Python
python 实现对文件夹中的图像连续重命名方法
Oct 25 Python
使用memory_profiler监测python代码运行时内存消耗方法
Dec 03 Python
使用python Telnet远程登录执行程序的方法
Jan 26 Python
python使用turtle绘制国际象棋棋盘
May 23 Python
java判断三位数的实例讲解
Jun 10 Python
python适合人工智能的理由和优势
Jun 28 Python
Django models.py应用实现过程详解
Jul 29 Python
Python爬虫谷歌Chrome F12抓包过程原理解析
Jun 04 Python
如何用python实现一个HTTP连接池
Jan 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
全国FM电台频率大全 - 22 重庆市
2020/03/11 无线电
PHP的FTP学习(二)[转自奥索]
2006/10/09 PHP
推荐一本PHP程序猿都应该拜读的书
2014/12/31 PHP
通过php添加xml文档内容的方法
2015/01/23 PHP
php开发工具有哪五款
2015/11/09 PHP
PHP与SQL语句写一句话木马总结
2019/10/11 PHP
php设计模式之备忘模式分析【星际争霸游戏案例】
2020/03/24 PHP
“不能执行已释放的Script代码”错误的原因及解决办法
2007/09/09 Javascript
jquery.validate分组验证代码
2011/03/17 Javascript
jQuery Ajax 实例全解析
2011/04/20 Javascript
一个页面放2段图片滚动代码出现冲突的问题如何解决
2012/12/21 Javascript
jQuery图片轮播的具体实现
2013/09/11 Javascript
JavaScript设计模式之单例模式实例
2014/09/24 Javascript
javascript创建动态表单的方法
2015/07/25 Javascript
jquery判断对象是否为空并遍历对象的简单实例
2016/07/26 Javascript
JS实现简单易用的手机端浮动窗口显示效果
2016/09/07 Javascript
jQuery实现分页功能(含ajax请求、后台数据、附完整demo)
2017/04/03 jQuery
无循环 JavaScript(map、reduce、filter和find)
2017/04/08 Javascript
JS实现十字坐标跟随鼠标效果
2017/12/25 Javascript
浅析vue.js数组的变异方法
2018/06/30 Javascript
使用vue-router为每个路由配置各自的title
2018/07/30 Javascript
VUE实现可随意拖动的弹窗组件
2018/09/25 Javascript
ES6 let和const定义变量与常量的应用实例分析
2019/06/27 Javascript
viewer.js一个强大的基于jQuery的图像查看插件(支持旋转、缩放)
2020/04/01 jQuery
vue 表单输入框不支持focus及blur事件的解决方案
2020/11/17 Vue.js
Python实现的数据结构与算法之双端队列详解
2015/04/22 Python
Python向Excel中插入图片的简单实现方法
2018/04/24 Python
python中计算一个列表中连续相同的元素个数方法
2018/06/29 Python
HTML5使用drawImage()方法绘制图像
2014/06/23 HTML / CSS
实例讲解HTML5的meta标签的一些应用
2015/12/08 HTML / CSS
HTML中meta标签及Keywords
2020/04/15 HTML / CSS
服装公司总经理岗位职责
2013/11/30 职场文书
主治医师岗位职责
2013/12/10 职场文书
公司经理任命书
2014/06/05 职场文书
户籍证明格式
2014/09/15 职场文书
2014年初级职称工作总结
2014/12/08 职场文书