可学习文献:
《numpy数据的存取》

一. npy

1.1 np.save

save(file, arr, allow_pickle=True, fix_imports=True)保存数组arr刀文件file,并允许序列化pickle.其中的fix_imports可以允许python2和python3之间的兼容。

  • 注意:np.save默认的文件格式为.npy,如果不是以其结尾,则自动添加。

1.2 np.load

  • load(file, mmap_mode=None, allow_pickle=False, fix_imports=True, encoding='ASCII')
  • mmap_mode : {None, ‘r+’, ‘r’, ‘w+’, ‘c’}, optional
  • allow_pickle : bool, optional.If true,允许加载存储在npy文件中的pickle对象数组。

1.3 保存与读取

1.3.1 保存一个numpy数组并读取

a = np.random.randint(10,size=(5,))
np.save("a",a) # 保存数据,末尾可自动添加.npy
a1=np.load("a.npy")# 读取数据
a1 # 查看数据

out:array([4, 1, 8, 7, 6])

1.3.2 保存一个整齐的list并读取

注释:

  1. dtype='<U1':第一个字符是字节序,< 表示小端,> 表示大端,| 表示平台的字节序;U是上表中的最后一行Unicode的意思;1代表长度字符串的长度

1.3.3 保存一个参差不齐的嵌套序列

参差不齐的嵌套序列的举例如下:

1. ['a','b',[1,2]] ##含嵌套序列
2. [np.array([1,4]),np.array([2,3,5])] ##长度参差不齐

当遇到以上类似的情况的时候,np.save()会弹出worning,在np.load(file)会报错,提示使用np.load(file,allow_pickle=True)

二、npz

2.1 np.savez和np.loads

savez(file, *args, **kwds)loads(*args, **kwargs)
举例的数据

from scipy.sparse import coo_matrix
# 建立稀疏矩阵
data = [1,2,3,4]
row = [3,6,8,2]
col = [0,7,4,9]
c = coo_matrix((data,(row,col)),shape=(10,10)) #构建10*10的稀疏矩阵,其中不为0的值和位置在第一个参数
print(c)

2.2 单个数组的np.savez保存和读取np.load

2.3 多个数组的保存np.savez和读取np.load

2.4 np.load加载压缩后的npz

保存为稀疏矩阵
sparse.save_npz("cc.npz",c)
读取稀疏矩阵

值得注意的是:使用np.loadz读取后的数据虽然类似dict,但不是真的dict无法使用c2.keys()的方式获取数据的key.如果想知道具体包含那些数据:

  1. 采用上面的方法c2.__dict__
  2. 调用属性c2.files
  3. 采用循环的方法:for k in c2.keys() :print k

2.4 scipy.sparse中的save_npz和load_npz

  • 栗子:
from scipy.sparse import coo_matrix
# 建立稀疏矩阵
data = [1,2,3,4]
row = [3,6,8,2]
col = [0,7,4,9]
c = coo_matrix((data,(row,col)),shape=(10,10))
  • 保存文件
    save_npz(file, matrix, compressed=True) 保存一个使用'.npz'格式的稀疏矩阵为一个文件
  • 读取文件
    load_npz(file) 从一个使用'.npz'格式的文件中加载一个稀疏矩阵

    根据稀疏矩阵的类型coo_matrix可以得到数据的读取形式
  • 文件加载后的对象的属性

三、csv

pd.read_csv(file)

四、txt

4.1 np.savetext和np.loadtxt

savetxt(fname, X, fmt='%.18e', delimiter=' ', newline='\n', header='', footer='', comments='# ', encoding=None)

  • X:1D or 2D array_like

loadtxt(fname, dtype=<class 'float'>, comments='#', delimiter=None, converters=None, skiprows=0, usecols=None, unpack=False, ndmin=0, encoding='bytes', max_rows=None)

  • dtype: 生成array数组的元素的类型,默认float

4.2 数组的txt保存和读取

ar = np.array([[1,2,3],[11,22,33],[2,3,4,],[22,33,44],[5,6,7]]) ##生成数组

  • 提醒: 如果txt中存在非数字的字符,则np.loadtxt(file)会报错。报错原因类似:ValueError: could not convert string to float: ‘row’
  • 由于是首行含有非数字字符,所以读取失败

4.3 循环读写txt,最后读取记录

背景描述:在做一个模型训练或着测试的时候,我们希望将一些标量数据,每次保存下来。在读取的该数据的时候可以生成数组,从而方便作图。
循环写入数据

# 1. 创建循环的数据
a = np.random.uniform(size=(20,3))#20行3列的数据
# 2. 循环写入txt
for i in range(20):f = open("loss2.txt","a+")#a+表示每次打开txt,不清空,续写f.write(str(a[i][0])+" ")#每次写入一个字符串,不可是floatf.write(str(a[i][1])+" ")f.write(str(a[i][2])+"\n")f.close()

查看txt数据

读取数据

b=np.loadtxt("loss2.txt")

验证

np.sum(b==a) #20*3=60,每次位置都是True

五、pkl

【python】文件的save和load:npy,npz,txt,csv,pkl,(持更)相关推荐

  1. matlab通过变量调用txt文件路径,MATLAB使用load函数读取txt文档

    MATLAB在数据处理方面应用非常广泛.在众多的专业领域里,把各种手段获取的数据存入txt文档中非常常见.如果txt文件中数据为矩阵形式,通常可以采用简单的load命令来读取数据,然后在MATLAB中 ...

  2. python文件读写 npy

    3.数组读写方法 在使用numpy科学计算时,我们想保存一些矩阵和数组数据.但维度较大,有三维,四维甚至五维.此时上述方法对数据的读写就很麻烦.numpy提供了较方便保存数组和矩阵的函数 二进制格式读 ...

  3. Python——文件(File)操作汇总

    文章目录 写在前面 1. Python文件的打开.读写.关闭 1.1 第一步:打开文件--open() 1.2 第二步:从文件中读取/写入数据 1.2.1 读数据 1.2.1.1 read() 1.2 ...

  4. python文件操作模式是什么,python --文件操作模式详解

    #f= open(r"aaa/a.txt",mode='rt') # f的值是一种变量,占用的是应用程序的内存空间,此时牵扯的是两个方面的资源 #print(f) ##2.操作文件 ...

  5. python npz文件_numpy的文件存储 .npy .npz 文件

    1)Numpy能够读写磁盘上的文本数据或二进制数据. 将数组以二进制格式保存到磁盘 np.load和np.save是读写磁盘数组数据的两个主要函数,默认情况下,数组是以未压缩的原始二进制格式保存在扩展 ...

  6. Python读取 npy, npz, h5, pkl 文件

    文章目录 1. npy文件 2. npz文件 3. h5文件 4. pkl文件 我们在进行数据处理及分析时,常常会用到CSV文件.当CSV文件中数据量较大时,处理数据的速度非常慢,且所占存储空间大.这 ...

  7. python怎么打开npz文件_numpy的文件存储.npy .npz 文件详解

    Numpy能够读写磁盘上的文本数据或二进制数据. 将数组以二进制格式保存到磁盘 np.load和np.save是读写磁盘数组数据的两个主要函数,默认情况下,数组是以未压缩的原始二进制格式保存在扩展名为 ...

  8. numpy 读写 npy npz 文件

    文章目录 创建数组 保存单个数组 读取单个数组 创建第二个数组 保存多个数组 读取多个数组 import numpy as np 创建数组 a1 = np.arange(0,12).reshape(2 ...

  9. npz文件转为npy_numpy的文件存储 .npy .npz 文件

    1)Numpy能够读写磁盘上的文本数据或二进制数据. 将数组以二进制格式保存到磁盘 np.load和np.save是读写磁盘数组数据的两个主要函数,默认情况下,数组是以未压缩的原始二进制格式保存在扩展 ...

  10. numpy的文件存储 .npy .npz 文件

    Numpy能够读写磁盘上的文本数据或二进制数据. 将数组以二进制格式保存到磁盘 np.load和np.save是读写磁盘数组数据的两个主要函数,默认情况下,数组是以未压缩的原始二进制格式保存在扩展名为 ...

最新文章

  1. 从算法到硬件,一文读懂2019年 AI如何演进
  2. jump-server 安装部署
  3. Scala 语言输出的三种方式
  4. ArrayList遍历
  5. Nodejs-express 4.0框架 简单介绍
  6. 【机器学习】降维技术-PCA
  7. Visual C++中error spawning cl.exe解决办法
  8. Linux学习笔记012---Centos7修改环境变量
  9. 阿里战微信!20 亿元扶持小程序开发者
  10. RegisterWindowMessage
  11. 北京游戏开发学习路线:花多少钱才能成为游戏开发?
  12. C语言 汉字码表 STM32 拼音输入法
  13. 一根网线实现两台计算机网络共享
  14. i7 8700k和i5 9400f哪个好 i78700k和i59400f性能差距
  15. js initialize
  16. VS2019 ClaudiaIDE更换背景图片
  17. centos 6 安装 net-speeder
  18. 基于WeMos D1+esp8266的智能垃圾桶和智能家居
  19. GraphQL以及Apollo-GraphQL的使用(一)
  20. 创维e900什么芯片_创维E900V21C晶晨芯片卡刷包 V1.0 免费版

热门文章

  1. 多个excel工作簿合并_Excel多工作簿合并,只需一个简单的公式搞定
  2. 三星android手机工程模式,11款手机工程模式汇总 小编教你来验机
  3. 中标麒麟Neokylin7桌面版安装指南——基于VirtualBox虚拟机
  4. 163邮箱如何开启pop服务器端口,pop3端口号详情介绍
  5. VBA-批量删除文本框内容(用类实现)
  6. VB功能模块:最全的VB操作网页功能模块
  7. DeepFaceLab:视频中有多人,仅替换特定人脸的方法!
  8. excel批量删除所有空白行
  9. 如何使用hMailServer+云服务器搭建个人邮箱
  10. 保留两位小数除法算式_小数除法计算题