pip install Scikit-learn
#!/usr/bin/env python # -*- coding: utf-8 -*- #author tom from sklearn.feature_extraction import DictVectorizer l=[ {‘city‘:‘北京‘,‘temparatue‘:20}, {‘city‘:‘深圳‘,‘temparatue‘:40}, {‘city‘:‘广州‘,‘temparatue‘:60}, ] def dictvec(): """ 字典数据抽取 :return: """ #实例化对象 dic=DictVectorizer() #调用feature,参数是字典,或者把字典放置于可迭代对象中,比如说列表 data=dic.fit_transform(l) print(dic.get_feature_names()) print(data) if __name__ == ‘__main__‘: dictvec()
结果:(sparse矩阵,这样边读边处理,有助于节约内存)
[‘city=北京‘, ‘city=广州‘, ‘city=深圳‘, ‘temparatue‘]
(0, 0) 1.0
(0, 3) 20.0
(1, 2) 1.0
(1, 3) 40.0
(2, 1) 1.0
(2, 3) 60.0
改变一下实话对象的参数(sparse默认为True,我们把他改为False)
#!/usr/bin/env python # -*- coding: utf-8 -*- #author tom from sklearn.feature_extraction import DictVectorizer l=[ {‘city‘:‘北京‘,‘temparatue‘:20}, {‘city‘:‘深圳‘,‘temparatue‘:40}, {‘city‘:‘广州‘,‘temparatue‘:60}, ] def dictvec(): """ 字典数据抽取 :return: """ #实例化对象 dic=DictVectorizer(sparse=False) #调用feature,参数是字典,或者把字典放置于可迭代对象中,比如说列表 data=dic.fit_transform(l) print(dic.get_feature_names()) print(data) if __name__ == ‘__main__‘: dictvec()
结果:(ndaarray或者数组) 这个我们成为one-hot编码
[‘city=北京‘, ‘city=广州‘, ‘city=深圳‘, ‘temparatue‘]
[[ 1. 0. 0. 20.]
[ 0. 0. 1. 40.]
[ 0. 1. 0. 60.]]
DictVectorizer.fit_transform(x)
返回值:转换之前的数据格式
把关于分类的特征值进行特征化以区分
原文:https://www.cnblogs.com/tjp40922/p/11167480.html