NumPy提供了多种存取数组内容的文件操作函数。保存数组数据的文件可以是二进制格式或者文本格式。

参考链接

(1)np.save()和np.load()

np.load和np.save是读写磁盘数组数据的两个主要函数,默认情况下,数组是以未压缩的原始二进制格式保存在扩展名为.npy的文件中。
他们会自动处理元素类型和形状等信息

np.save(file, arr, allow_pickle=True, fix_imports=True)
解释:Save an array to a binary file in NumPy .npy format。以“.npy”格式将数组保存到二进制文件中。
参数:
file 要保存的文件名称,需指定文件保存路径,如果未设置,保存到默认路径。其文件拓展名为.npy
arr 为需要保存的数组,也即把数组arr保存至名称为file的文件中。

np.load(file, mmap_mode=None, allow_pickle=False, fix_imports=True, encoding=‘ASCII’)
解释:Load arrays or pickled objects from .npy, .npz or pickled files.

#存储数组数据, .npy文件
import numpy as npimport os
os.chdir(r'C:\python数据分析')
ar = np.random.rand(5,5)
print(ar)
np.save('arraytest.npy',ar)#如果文件路径末尾没有扩展名.npy,该扩展名会被自动加上。
#也可以直接np.save(r'C:\python数据分析\arraytest.npy',ar)


打开之后是乱码

#读取数组数据, .npy文件
ar_load = np.load('arraytest.npy')
print(ar_load)
#也可以直接np.load(r'C:\python数据分析\arraytest.npy')


(2)np.savez()和np.load()

如果你想将多个数组保存到一个文件中的话,可以使用numpy.savez函数。savez函数的第一个参数是文件名,其后的参数都是需要保存的数组,也可以使用关键字参数为数组起一个名字,非关键字参数传递的数组会自动起名为arr_0, arr_1, …。
savez函数输出的是一个压缩文件(扩展名为npz),其中每个文件都是一个save函数保存的npy文件,文件名对应于数组名。
load函数自动识别npz文件,并且返回一个类似于字典的对象,可以通过数组名作为关键字获取数组的内容。
——————
np.savez(file, *args, **kwds)
Docstring:
Save several arrays into a single file in uncompressed .npz format.

ar1 = np.random.rand(2,3)
ar2 = np.arange(4)
np.savez(r'C:\python数据分析\arraytest1.npz',ar1,ar2)
r = np.load(r'C:\python数据分析\arraytest1.npz')
print(r)
print(r['arr_0'])

如果你用解压软件打开files.npz文件的话,会发现其中有两个文件:arr_0.npy, arr_1.npy,其中分别保存着数组ar1,ar2的内容。

(3)np.savetxt()和np.loadtxt()

np.loadtxt和np.savetxt可以读写1维和2维数组的文本文件:
同时可以指定各种分隔符、针对特定列的转换器函数、需要跳过的行数等。
——
注意:只能处理 1维和2维数组。可以用于CSV格式文本文件
——
np.savetxt(fname, X, fmt=’%.18e’, delimiter=’ ‘, newline=’\n’, header=’’, footer=’’, comments=’# ‘, encoding=None)
Docstring:
Save an array to a text file.
————
np.loadtxt(fname, dtype=<class ‘float’>, comments=’#’, delimiter=None, converters=None, skiprows=0, usecols=None, unpack=False, ndmin=0, encoding=‘bytes’, max_rows=None)

ar1 = np.random.rand(2,3)
np.savetxt(r'C:\python数据分析\arraytest2.txt',ar1,delimiter=',')
#写入的时候指定逗号分割,则读取的时候也要指定逗号分割

ar1_load = np.loadtxt(r'C:\python数据分析\arraytest2.txt',delimiter=',')#指定逗号分割符
print(ar1_load)
print(ar1_load.dtype)

#.csv格式
ar1 = np.random.rand(2,3)
np.savetxt(r'C:\python数据分析\arraytest2.csv',ar1,delimiter=',')#csv一定时逗号分隔符

ar1_load = np.loadtxt(r'C:\python数据分析\arraytest2.csv',delimiter=',')
print(ar1_load)
print(ar1_load.dtype)

ar1 = np.random.rand(2,3)
np.savetxt(r'C:\python数据分析\arraytest2.txt',ar1,fmt='%.2f')#使用默认分割符(空格),保留两位小数print(ar1)


ar1_load = np.loadtxt(r'C:\python数据分析\arraytest2.txt')
print(ar1_load)
print(ar1_load.dtype)

numpy学习(五)——文件的保存和读写(np.save()、np.load()、np.savez()、np.savetxt()、np.loadtxt())相关推荐

  1. 关于.jl.z格式文件的保存与读写(python大文件处理)

    压缩存储能节省磁盘空间,但文件读写会耗费更多时间,属于用时间换空间的思路. joblib提供了直接存取numpy矩阵数据的接口. example1 import joblib as jl import ...

  2. Python scrapy项目中.py文件无法保存:Unable to save file 'items.py' Cannot save items.py

    1. 问题描述 在使用cmd 命令行创建scrapy project项目后,对items文件进行更改时发生错误. (1)spyder编辑器显示 Unable to save file 'items.p ...

  3. 《Python数据分析基础教程:NumPy学习指南(第2版)》笔记5:第三章 常用函数1——文件读写、算术平均值、最大值最小值、极值

    本章将介绍NumPy的常用函数.具体来说,我们将以分析历史股价为例,介绍怎样从文件中载入数据,以及怎样使用NumPy的基本数学和统计分析函数.这里还将学习读写文件的方法,并尝试函数式编程和NumPy线 ...

  4. python怎么读取txt文件数据保存数组中-Python Numpy中数据的常用的保存与读取方法...

    在经常性读取大量的数值文件时(比如深度学习训练数据),可以考虑现将数据存储为Numpy格式,然后直接使用Numpy去读取,速度相比为转化前快很多. 下面就常用的保存数据到二进制文件和保存数据到文本文件 ...

  5. [转载] Numpy学习之矩阵、函数、二元运算及数组读写

    参考链接: Numpy 二元运算 矩阵 # --*--coding:utf-8--*-- import numpy as np """ 矩阵 ""&q ...

  6. 【Python】文件操作(创建 | 读写 | 保存 | 文件名)

    文章目录 一.判断存在 判断文件夹是否存在 判断文件是否存在 二.创建,复制, 删除, 重命名 创建文件,文件夹 复制文件,文件夹: 删除文件,文件夹 重命名文件,文件夹 移动文件,文件夹 三.保存, ...

  7. opencv学习笔记五--文件扫描+OCR文字识别

    opencv学习笔记五--文件扫描+OCR文字识别 文件扫描 定义函数 边缘检测 获取轮廓 变换 OCR文字识别 环境配置 代码 文件扫描 # 导入工具包 import numpy as np imp ...

  8. MATLAB强化学习四:图片保存fig文件

    MATLAB强化学习四:图片保存fig文件 saveas命令图片保存fig文件 saveas(gcf,'保存文件名称')

  9. Java学习第十六天——字符流读写文件、字符缓冲流拷贝文件

    字符流读写文件 字符流读数据-按单个字符读取 创建字符流读文件对象: ​ Reader reader = new FileReader("readme.txt"); 调用方法读取数 ...

最新文章

  1. 面向对象编程(OOP)----BLUE大师JS课堂笔记(二)
  2. iOS开发拓展篇——如何把项目托管到GitHub
  3. window7 ubuntu12.04 Opensuse13.04 三系统安装
  4. java读excel乱码,【java 项目中,上传的excel打开时无法正常打开,显示乱码 ,怎样可以正常打开,】java读取excel乱码...
  5. 记一次服务器执行MySQL耗时问题
  6. Zabbix添加网络设备
  7. android selector(转)
  8. atitit.设计模式(2) -----查表模式/ command 总结
  9. 天若OCR专业版软件,现可无需联网本地使用了~
  10. python神经网络编程 豆瓣,神经网络算法python实现
  11. 如何防止三分钟热度?给自己的目标定个阶段性奖励吧
  12. 史上最详[ZI]细[DUO]的wfuzz中文教程(一)——初识wfuzz
  13. 苹果mac休眠快捷键_「苹果电脑技巧」MAC快捷键(2018更新版)
  14. java jfif_Java文件类型工具类
  15. 央行降息楼市应声而动:购房者出现恐慌苗头
  16. Robotframwork-ride 启动异常解决
  17. 平头哥玄铁CPU调试系统介绍
  18. 云流量成为数据中心的王者
  19. 程序员工作经验谈之商贸平台
  20. android炉石解析包错误,炉石传说7月11日解析失败怎么回事 游戏出错解决方法介绍...

热门文章

  1. 叶子的离开,是风的追逐,还是树的不留恋?
  2. 无心剑中译奥修《错在您》
  3. 【打卡-Coggle竞赛学习2023年2月】图节点嵌入
  4. 一个免费的在线录屏网站
  5. uni-app仿饿了么点餐界面 左右菜单联动 滚动时商家信息、广告吸顶、弹窗下滑动关闭
  6. android 电池续航时间,高端Android手机电池续航排行榜Droid居榜首
  7. SDM(Supervised Descent Method)代码实现在Windows下的配置与使用
  8. 【漆学军】分享一个自定义K线的指标的源码
  9. Curator的基本使用
  10. 云服务器可以用来做什么