Python 关于加载npy文件并调查其中的内容

Python 关于加载npy文件并调查其中的内容,python,numpy,Python,Numpy,我一直在尝试输出npy文件的内容,当打印(np.load('/home/ugwz/fcn/vgg16.npy',encoding='latin1'))时,部分输出如下所示,有点难以读取 然后我尝试输出这个数组的元数据 print(np.load('/home/vgg16.npy', encoding='latin1').size) print(np.load('/home/vgg16.npy', encoding='latin1').shape) print(np.load('/home/vg

我一直在尝试输出npy文件的内容,当
打印(np.load('/home/ugwz/fcn/vgg16.npy',encoding='latin1'))
时,部分输出如下所示,有点难以读取

然后我尝试输出这个数组的元数据

print(np.load('/home/vgg16.npy', encoding='latin1').size)
print(np.load('/home/vgg16.npy', encoding='latin1').shape)
print(np.load('/home/vgg16.npy', encoding='latin1').ndim)
结果如下:

1
()
0
print(np.load('/home/vgg16.npy',encoding='latin1').dtype)

object

print(np.load('/home/vgg16.npy',encoding='latin1').item().type)

AttributeError: 'dict' object has no attribute 'type'


print(np.load('/home/vgg16.npy',encoding='latin1').item().shape)

AttributeError: 'dict' object has no attribute 'shape'
阅读和理解
npy
文件的最佳方式是什么

补充资料如下:

1
()
0
print(np.load('/home/vgg16.npy',encoding='latin1').dtype)

object

print(np.load('/home/vgg16.npy',encoding='latin1').item().type)

AttributeError: 'dict' object has no attribute 'type'


print(np.load('/home/vgg16.npy',encoding='latin1').item().shape)

AttributeError: 'dict' object has no attribute 'shape'

基于屏幕截图的结尾

....], dtype=float)]}
我希望开始是
{akey:[array(..
),换句话说,是一个字典(一个或多个项)、一个列表(至少一个项)和1d数组

虽然您的大小、形状、ndim值表明这是一个单个项,0维数组。它的
dtype
是什么。我猜
dtype=object

看起来列表和/或字典和/或对象数据类型数组中嵌入了一个1d数组

我没有使用
编码
参数,它的文档是:

编码:str,可选

读取Python 2字符串时使用的编码。仅在 在Python3上加载Python2生成的pickled文件,其中包括 包含对象数组的npy/npz文件。值不是“latin1”, “ASCII”和“字节”是不允许的,因为它们会损坏数字 默认值:“ASCII”

这与包含pickle对象的文件一致。
pickling
是用于保存列表、字典等的通用Python工具。
np.save/load
可以处理pickle对象,但以其特殊格式保存numpy数组,实际上是数组pickle

我想知道这个文件是否可以加载
pickle
(加载?)

我会尝试使用
allow_pickle=False
加载,只是为了验证它是否正在尝试处理pickle对象,包括
dtype=object
数组

另一种尝试是

 data = load...
 print(data.dtype)   # object?
 d1 = data[()]       # or
 d1 = data.item()

这些to语句中的任何一个都应从0d数组中提取单个元素。然后尝试识别
d1
(类型、形状、数据类型等).

你是如何创建数组的?我猜你调用了
np.save
,第二个参数是dict of numpy数组。是的,加载的npy文件似乎是dict objectHi hpaulj,我已经更新了原始帖子,包括数据等信息的输出。item().shape,看起来它不支持此类信息。npy文件是从下载的,因为它是dict对象,所以我使用键来提取键列表。因此它是一个包含字典的对象数组。