How can I correct the follow error ' AttributeError: 'dict_keys' object has no attribute 'remove' '?
How can I correct the follow error ' AttributeError: 'dict_keys' object has no attribute 'remove' '?
我试图按照“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)
' AttributeError: 'dict_keys' 对象没有属性 'remove' '
似乎将 keys.remove(key)
更改为 del keys[key]
对他们有用。 (来自评论)
当您加载 matlab 文件和需要字典但找不到字典的代码时,您遇到了这个问题。
具体错误是'dict_keys' object has no attribute 'remove'
。这就是我知道 python 没有找到字典的方式。
您的代码:
matcontents = sio.loadmat(filename)
keys = matcontents.keys()
将其更改为:
matcontents = sio.loadmat(filename)
print('matcontents',type(matcontents),matcontents)
keys = matcontents.keys()
print('keys',type(keys),keys)
确保数据按预期加载。
此页面还提到必须以不同方式导入较新版本的 matlab 文件 (7.3)。
Read .mat files in Python
我试图按照“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)
' AttributeError: 'dict_keys' 对象没有属性 'remove' '
似乎将 keys.remove(key)
更改为 del keys[key]
对他们有用。 (来自评论)
当您加载 matlab 文件和需要字典但找不到字典的代码时,您遇到了这个问题。
具体错误是'dict_keys' object has no attribute 'remove'
。这就是我知道 python 没有找到字典的方式。
您的代码:
matcontents = sio.loadmat(filename)
keys = matcontents.keys()
将其更改为:
matcontents = sio.loadmat(filename)
print('matcontents',type(matcontents),matcontents)
keys = matcontents.keys()
print('keys',type(keys),keys)
确保数据按预期加载。
此页面还提到必须以不同方式导入较新版本的 matlab 文件 (7.3)。 Read .mat files in Python