我从一些图像中提取一些特征,我想将它们与它们的标签(最好是原始图像)一起保存,以便以后加载它们而不必每次都运行特征提取代码。
我希望将它们存储在与digits dataset
中的sklearn.datasets
类似的结构中,以便dictionary
类型。
所以我的问题不是存储key:value
类型的东西,而是存储类型的东西:
我的X
为numpy.ndarray
数据类型,y
为1-D vector array
。
有任何建议如何实现这一目标?
答案 0 :(得分:1)
如果您想要sklearn.datasets
方法返回,为什么不使用他们的code?
他们定义了一个符合你想要的类bunch
:
class Bunch(dict):
"""Container object for datasets
Dictionary-like object that exposes its keys as attributes.
>>> b = Bunch(a=1, b=2)
>>> b['b']
2
>>> b.b
2
>>> b.a = 3
>>> b['a']
3
>>> b.c = 6
>>> b['c']
6
"""
def __init__(self, **kwargs):
super(Bunch, self).__init__(kwargs)
def __setattr__(self, key, value):
self[key] = value
def __dir__(self):
return self.keys()
def __getattr__(self, key):
try:
return self[key]
except KeyError:
raise AttributeError(key)
然后他们用:
创建一个数据集对象Bunch(data=data, target=target,
target_names=target_names,
DESCR=fdescr,
feature_names=['feat_1', 'feat_2',
'feat_3', 'feat_4'])