我有一个前同事的.npz文件,需要对它进行改头换面。可悲的是,我的新鲜一到Python和我目前难倒。我尝试的第一件事是用
将文件加载到Python中>>> import numpy as np
>>> data = np.load("abc.npz")
现在我知道,有一个'记录' .npz中的对象所以我去了
>>> recdata = data['records'];
由于我还不知道该如何处理数据,所以我去了
>>> recdata.shape
()
和
>>> recdata.dtype
dtype('O')
看到形状,但没有什么......但是,
>>> recdata.tofile('data.out',",")
给了我一个包含一些数据的人类可读文件,一个例子
{'30': {'caseinfo': {'nerve01 left': 2512, 'nerve02 right': 1824,
'nerve02 left': 2458, 'nerve03 left': 8585, 'nerve01 right': 2206, 'nerve03 right': 4588},
'data': {'ps': array([ 422, 39, 37, 35, 34, 36, 38, 39, 39,
...
468, 461, 449, 432, 414, 408, 410, 408], dtype=int16), 'pout': array([-28, -12, -10, ..., 7, 0, 7], dtype=int16),
'Q': array([ 2885, 2933, 2933, 2934, 2933, 2933, 2933, 2933, 2936,
2941, 2953, 2970, 3021, 3095, 3207, 3368, 3525, 3671,
......等等。有人能帮助我理解这里已经完成了吗?我猜这不是一个,而是几个数组。或者这是所有单独的维度保存和命名?
答案 0 :(得分:1)
dtype
'O'
(或等效object
)只是一个Python对象。
你有一个Python字典的零维,单值数组:
numpy.array({}, dtype=object)
#>>> array({}, dtype=object)
numpy.array({}, dtype=object).shape
#>>> ()
和
numpy.array({}, dtype=object).tofile("/tmp/data.out", ",")
只是提供一个包含" {}
"的文件,正如您所期望的那样。