我试图遵循“https://github.com/EBjerrum/Deep-Chemometrics/blob/master/Deep_Chemometrics_with_data_augmentation.py.ipynb”的例子,但当执行代码的第一部分时,我立即得到错误。
#code
import scipy.io as sio
import numpy as np
def get_xY(filename, maxx=600):
#sio.whosmat(filename)
matcontents = sio.loadmat(filename)
keys = matcontents.keys()
for key in list(keys):
if key[0] == '_':
keys.remove(key)
keys.sort()
d = {}
for key in keys:
data = matcontents[key][0][0]
if key[-1] == "Y":
Ydata = data[5]
d[key] = Ydata
else:
xdata = data[5][:,:maxx]
d[key] = xdata
d["axisscale"]= data[7][1][0][0][:maxx].astype(np.float)
return d
filename = 'Dataset/nir_shootout_2002.mat'
dataset = get_xY(filename)
字符串
'属性错误:“dict_keys”对象没有属性“remove”
1条答案
按热度按时间qcbq4gxm1#
似乎将
keys.remove(key)
改为del keys[key]
对他们来说是有效的。(来自一条评论)当你加载matlab文件时,你会遇到这个问题,而代码期望一个dict,而它没有找到一个dict。
具体错误为
'dict_keys' object has no attribute 'remove'
。所以我知道python不是在找一个dict。密码:
字符串
将其更改为:
型
以确保按预期加载数据。
本页还提到了较新版本的matlab文件(7.3)必须以不同的方式导入。Read .mat files in Python