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分割TXT文件成4K的TXT文件
May 23 Python
python 筛选数据集中列中value长度大于20的数据集方法
Jun 14 Python
如何安装多版本python python2和python3共存以及pip共存
Sep 18 Python
python使用phoenixdb操作hbase的方法示例
Feb 28 Python
Python3实现计算两个数组的交集算法示例
Apr 03 Python
树莓派实现移动拍照
Jun 22 Python
Django1.11自带分页器paginator的使用方法
Oct 31 Python
Django框架ORM数据库操作实例详解
Nov 07 Python
Python timer定时器两种常用方法解析
Jan 20 Python
Python爬虫爬取新闻资讯案例详解
Jul 14 Python
java字符串格式化输出实例讲解
Jan 06 Python
python 合并多个excel中同名的sheet
Jan 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
php将会员数据导入到ucenter的代码
2010/07/18 PHP
深入解析yii权限分级式访问控制的实现(非RBAC法)
2013/06/13 PHP
php中实现xml与mysql数据相互转换的方法
2014/12/25 PHP
Yii2实现多域名跨域同步登录退出
2017/02/04 PHP
onmouseover和onmouseout的一些问题思考
2013/08/14 Javascript
Node.js模拟浏览器文件上传示例
2014/03/26 Javascript
JS判断客户端是手机还是PC的2个代码
2014/04/12 Javascript
使用jQuery仿苹果官网焦点图特效
2014/12/23 Javascript
js实现网页抽奖实例
2015/08/05 Javascript
基于javascript实现动态时钟效果
2020/08/18 Javascript
详解Vue.js 2.0 如何使用axios
2017/04/21 Javascript
详解vue 模版组件的三种用法
2017/07/21 Javascript
微信小程序商品详情页底部弹出框
2019/11/22 Javascript
JavaScript复制变量三种方法实例详解
2020/01/09 Javascript
Vue项目移动端滚动穿透问题的实现
2020/05/19 Javascript
JavaScript中ES6规范中let和const的用法和区别
2020/08/06 Javascript
Python制作爬虫采集小说
2015/10/25 Python
Python字典操作详细介绍及字典内建方法分享
2018/01/04 Python
Python 获得命令行参数的方法(推荐)
2018/01/24 Python
python 处理dataframe中的时间字段方法
2018/04/10 Python
详解Python odoo中嵌入html简单的分页功能
2019/05/29 Python
Python批量启动多线程代码实例
2020/02/18 Python
ipython jupyter notebook中显示图像和数学公式实例
2020/04/15 Python
python map比for循环快在哪
2020/09/21 Python
利用canvas实现图片下载功能来实现浏览器兼容问题
2019/05/31 HTML / CSS
CheapTickets香港机票预订网站:CheapTickets.hk
2019/06/26 全球购物
什么是虚拟内存?虚拟内存有什么优势?
2012/02/19 面试题
求职信写作要突出重点
2014/01/01 职场文书
文明寝室标语
2014/06/13 职场文书
授权委托书
2014/07/31 职场文书
个人三严三实对照检查材料
2014/09/25 职场文书
社区领导班子四风问题原因分析及整改措施
2014/09/28 职场文书
2015年母亲节活动策划方案
2015/05/04 职场文书
企业反腐倡廉心得体会
2015/08/15 职场文书
终止合同协议书范本
2016/03/22 职场文书
Windows Server 2008 修改远程登录端口以及配置防火墙
2022/04/28 Servers