本文介绍了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反向的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-15 11:13