本文介绍了np_utils.to_categorical反向的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
import numpy as np
from keras.utils import np_utils
nsample = 100
sample_space = ["HOME","DRAW","AWAY"]
array = np.random.choice(sample_space, nsample, )
uniques, coded_id = np.unique(array, return_inverse=True)
coded_array = np_utils.to_categorical(coded_id)
示例
输入
['AWAY', 'HOME', 'DRAW', 'AWAY', ...]
输出coded_array
Output coded_array
[[ 0. 1. 0.]
[ 0. 0. 1.]
[ 0. 0. 1.]
...,
[ 0. 0. 1.]
[ 0. 0. 1.]
[ 1. 0. 0.]]
如何反向处理并从coded_array获取原始数据?
How to reverse process and get the original data from coded_array?
推荐答案
您可以使用 np.argmax
来检索那些ids
,然后简单地索引到uniques
应该会为您提供原始数组.这样,我们将有一个实现,像这样-
You can use np.argmax
to retrieve back those ids
and then simply indexing into uniques
should give you the original array. Thus, we would have an implementation, like so -
uniques[y_code.argmax(1)]
样品运行-
In [44]: arr
Out[44]: array([5, 7, 3, 2, 4, 3, 7])
In [45]: uniques, ids = np.unique(arr, return_inverse=True)
In [46]: y_code = np_utils.to_categorical(ids, len(uniques))
In [47]: uniques[y_code.argmax(1)]
Out[47]: array([5, 7, 3, 2, 4, 3, 7])
这篇关于np_utils.to_categorical反向的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!