如果您fit
的{{1}}标签类型为sklearn.preprocessing.LabelEncoder
,则出于某种原因在int
期间将返回inverse_transform
类型标签。
numpy.int64
所以我想我有2个问题
(当Flask的from sklearn.preprocessing import LabelEncoder
labels = [2,4,6] # just a list of `int`s
e = LabelEncoder().fit(labels)
encoded = e.transform([4,6,2])
decoded = e.inverse_transform(encoded)
type(decoded[0])
# returns <class 'numpy.int64'>
无法将jsonify
编组为JSON时,我陷入了这个问题)
答案 0 :(得分:2)
为什么要这么做?
因为transform
和inverse_transform
返回numpy数组,并且
在这种情况下,标量类型为int64
。
如果没有自定义代码,怎么能避免这种情况?
如果需要获取单个元素,请使用decoded.item(0)
。如果需要整个数组,请使用decoded.tolist()
。有关更多信息,请参见Converting numpy dtypes to native python types。