python中 .npy文件的读写操作实例


Posted in Python onApril 14, 2022

Numpy binary files (NPY, NPZ)

注:.npy文件是numpy专用的二进制文件。

1. 读取与保存

import numpy as np

arr = np.array([[1, 2, 3],
               [4, 5, 6]])
np.save('weight.npy', arr)

loadData = np.load('weight.npy')

print("----type----")
print(type(loadData))
print("----shape----")
print(loadData.shape)
print("----data----")
print(loadData)

python中 .npy文件的读写操作实例

至于具体API参见:https://docs.scipy.org/doc/numpy/index.html

2. 实战案例

在深度神经网络训练过程中通常需要读取预训练权重,预训练权重通常是 .npy文件,比如vgg16.npy(https://pan.baidu.com/s/1Ru5FJVSPjYTHZwlmzRwRvQ   提取码:ygxw)。本次就以分析vgg16.npy为例进行说明。

import numpy as np

# 注意编码方式
pre_train = np.load("vgg16.npy", allow_pickle=True, encoding="latin1")

print("------type-------")
print(type(pre_train))
print("------shape-------")
print(pre_train.shape)
print("------data-------")
print(pre_train)

python中 .npy文件的读写操作实例

这是个啥?为啥shape没有? 但是可以看出来 pre_train 里元素应该是一个字典,我们尝试取出来。

注:ndarray.item()是复制数组中的一个元素,并将其返回。具体语法参见:https://docs.scipy.org/doc/numpy/reference/generated/numpy.ndarray.item.html?highlight=item#numpy.ndarray.item

import numpy as np

pre_train = np.load("vgg16.npy", allow_pickle=True, encoding="latin1")

data_dic = pre_train.item()

print("------type-------")
print(type(data_dic))
print("------conv1_1  data-------")
print(data_dic['conv1_1'])   # 返回一个列表,该列表有两个array,表示conv1_1的权重w与偏置b
print("------conv1_1  shape-------")
print((data_dic['conv1_1'][0]).shape)

看看结果:

python中 .npy文件的读写操作实例

python中 .npy文件的读写操作实例

可以发现,这是第一个卷积层的权重参数,输入channel是3,输出channel是64。

附:python中 .npy文件的读写操作实例

numpy中的二进制文件的读写:

save

np.save ("./文件名", 数组名):以二进制的格式保存数据

load

np.load("./文件名.npy"): 函数是从二进制的文件中读取数据

savez

np.savez(’./文件名’,数组名1,数组名2,…):savez 函数可以将多个数组保存到一个文件中

(1)save操作

import numpy as np
a=np.arange(5)
np.save('get.npy',a)

(2)load操作

import numpy as np
a=np.load('load.npy')
print(a)

(3)savez操作

import numpy as np
a=np.arange(3)
b=np.arange(4)
c=np.arange(5)
np.savez('array_save.npz',a,b,c)  多个ndarray类型的数组

总结

到此这篇关于python读取npy文件数据的文章就介绍到这了!

Python 相关文章推荐
python正则匹配抓取豆瓣电影链接和评论代码分享
Dec 27 Python
Python实现多线程抓取妹子图
Aug 08 Python
tensorflow 中对数组元素的操作方法
Jul 27 Python
Python中的函数式编程:不可变的数据结构
Oct 08 Python
Python read函数按字节(字符)读取文件的实现
Jul 03 Python
Python 列表去重去除空字符的例子
Jul 20 Python
关于PyTorch 自动求导机制详解
Aug 18 Python
python绘制封闭多边形教程
Feb 18 Python
keras实现多GPU或指定GPU的使用介绍
Jun 17 Python
python 实现图片修复(可用于去水印)
Nov 19 Python
Pandas||过滤缺失数据||pd.dropna()函数的用法说明
May 14 Python
在python中读取和写入CSV文件详情
Jun 28 Python
Python Matplotlib绘制等高线图与渐变色扇形图
python读取并查看npz/npy文件数据以及数据显示方法
Apr 14 #Python
在NumPy中深拷贝和浅拷贝相关操作的定义和背后的原理
Python捕获、播放和保存摄像头视频并提高视频清晰度和对比度
Apr 14 #Python
Python中time标准库的使用教程
Apr 13 #Python
Python函数对象与闭包函数
Apr 13 #Python
Python作用域和名称空间的详细介绍
Apr 13 #Python
You might like
用PHP实现小型站点广告管理
2006/10/09 PHP
基于mysql的论坛(5)
2006/10/09 PHP
PHP性能优化准备篇图解PEAR安装
2011/12/05 PHP
php的4种常见运行方式
2015/03/20 PHP
php实现的中文分词类完整实例
2017/02/06 PHP
SUN的《AJAX与J2EE》全文译了
2007/02/23 Javascript
extjs 列表框(multiselect)的动态添加列表项的方法
2009/07/31 Javascript
JQuery将文本转化成JSON对象需要注意的问题
2011/05/09 Javascript
JS图片无缝、平滑滚动代码
2014/03/11 Javascript
JavaScript对HTML DOM使用EventListener进行操作
2015/10/21 Javascript
javascript作用域链(Scope Chain)用法实例解析
2015/11/30 Javascript
js动态添加的DIV中的onclick事件简单实例
2016/07/25 Javascript
Vue实例简单方法介绍
2017/01/20 Javascript
让nodeJS支持ES6的词法----babel的安装和使用方法
2017/07/31 NodeJs
NodeJS使用Range请求实现下载功能的方法示例
2018/10/12 NodeJs
JavaScript中的事件与异常捕获详析
2019/02/24 Javascript
Python入门_浅谈逻辑判断与运算符
2017/05/16 Python
深入浅析python3中的unicode和bytes问题
2019/07/03 Python
matplotlib绘制多个子图(subplot)的方法
2019/12/03 Python
Python 实现数组相减示例
2019/12/27 Python
flask框架url与重定向操作实例详解
2020/01/25 Python
Pycharm中安装Pygal并使用Pygal模拟掷骰子(推荐)
2020/04/08 Python
通过代码实例解析Pytest运行流程
2020/08/20 Python
分享unittest单元测试框架中几种常用的用例加载方法
2020/12/02 Python
美国隐形眼镜销售网站:ContactsDirect
2017/10/28 全球购物
Needle & Thread官网:英国仙女品牌
2018/01/13 全球购物
玩具公司的创业计划书
2013/12/31 职场文书
车间核算员岗位职责
2014/07/01 职场文书
微笑面对生活演讲稿
2014/09/23 职场文书
2014年销售经理工作总结
2014/12/01 职场文书
构建和谐校园倡议书
2015/01/19 职场文书
侵犯商业秘密的律师函
2015/05/27 职场文书
2016年“6.26”禁毒宣传月系列活动总结
2016/04/05 职场文书
MySQL之PXC集群搭建的方法步骤
2021/05/25 MySQL
Python获取字典中某个key的value
2022/04/13 Python
详解Flutter网络请求Dio库的使用及封装
2022/04/14 Java/Android