Python 关于加载npy文件并调查其中的内容
我一直在尝试输出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
打印(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对象,所以我使用键来提取键列表。因此它是一个包含字典的对象数组。