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随机读取文件实现实例
May 25 Python
Python设计实现的计算器功能完整实例
Aug 18 Python
Python之web模板应用
Dec 26 Python
Python线程下使用锁的技巧分享
Sep 13 Python
python判断一个数是否能被另一个整数整除的实例
Dec 12 Python
python 寻找离散序列极值点的方法
Jul 10 Python
Python实现socket非阻塞通讯功能示例
Nov 06 Python
Python3之外部文件调用Django程序操作model等文件实现方式
Apr 07 Python
python中format函数如何使用
Jun 22 Python
Pytorch框架实现mnist手写库识别(与tensorflow对比)
Jul 20 Python
pycharm 实现调试窗口恢复
Feb 05 Python
Python中使用Lambda函数的5种用法
Apr 01 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的header和asp中的redirect比较
2006/10/09 PHP
discuz authcode 经典php加密解密函数解析
2020/07/12 PHP
PHP下对数组进行排序的函数
2010/08/08 PHP
php的无刷新操作实现方法分析
2020/02/28 PHP
php判断数组是否为空的实例方法
2020/05/10 PHP
jQuery学习笔记之jQuery选择器的使用
2010/12/22 Javascript
JQUERY对单选框(radio)操作的小例子
2013/04/25 Javascript
Javascript中的方法链(Method Chaining)介绍
2015/03/15 Javascript
用window.onerror捕获并上报Js错误的方法
2016/01/27 Javascript
javascript的BOM
2016/05/03 Javascript
浅谈JavaScript 标准对象
2016/06/02 Javascript
JS实现颜色梯度与渐变效果完整实例
2016/12/30 Javascript
js实现textarea限制输入字数
2017/02/13 Javascript
JS FormData上传文件的设置方法
2017/07/05 Javascript
jQuery实现动态显示select下拉列表数据的方法
2018/02/05 jQuery
webpack源码之loader机制详解
2018/04/06 Javascript
深入理解Vue nextTick 机制
2018/04/28 Javascript
Node.js之readline模块的使用详解
2019/03/25 Javascript
webpack实践之DLLPlugin 和 DLLReferencePlugin的使用教程
2019/06/10 Javascript
layui 点击重置按钮, select 并没有被重置的解决方法
2019/09/03 Javascript
jquery向后台提交数组的代码分析
2020/02/20 jQuery
React冒泡和阻止冒泡的应用详解
2020/08/18 Javascript
[02:47]DOTA2英雄基础教程 野性怒吼兽王
2013/12/05 DOTA
使用cx_freeze把python打包exe示例
2014/01/24 Python
Python操作mysql数据库实现增删查改功能的方法
2018/01/15 Python
python实现异常信息堆栈输出到日志文件
2019/12/26 Python
Pytorch中.new()的作用详解
2020/02/18 Python
Sunglasses Shop丹麦:欧洲第一的太阳镜在线销售网站
2017/10/22 全球购物
匡威意大利官方商店 :Converse意大利
2018/11/27 全球购物
Looking4Parking美国:全球排名第一的机场停车比较品牌
2019/08/26 全球购物
集团公司总经理岗位职责
2013/12/20 职场文书
火车来了教学反思
2014/02/11 职场文书
就业推荐表自我鉴定范文
2014/03/21 职场文书
公司节能减排倡议书
2014/05/14 职场文书
端午节演讲稿
2014/05/23 职场文书
Linux中如何安装并部署Redis
2022/04/18 Servers