利用numpy 生成one_hot 数组

其中numpy.arange() 使用用法如下:
arange(…)
arange([start,] stop[, step,], dtype=None)

Return evenly spaced values within a given interval.

Values are generated within the half-open interval ``[start, stop)``
(in other words, the interval including `start` but excluding `stop`).
For integer arguments the function is equivalent to the Python built-in
`range <http://docs.python.org/lib/built-in-funcs.html>`_ function,
but returns an ndarray rather than a list.

When using a non-integer step, such as 0.1, the results will often not
be consistent.  It is better to use ``linspace`` for these cases.

Parameters
----------
start : number, optional
    Start of interval.  The interval includes this value.  The default
    start value is 0.
stop : number
    End of interval.  The interval does not include this value, except
    in some cases where `step` is not an integer and floating point
    round-off affects the length of `out`.
step : number, optional
    Spacing between values.  For any output `out`, this is the distance
    between two adjacent values, ``out[i+1] - out[i]``.  The default
    step size is 1.  If `step` is specified, `start` must also be given.
dtype : dtype
    The type of the output array.  If `dtype` is not given, infer the data
    type from the other input arguments.

Returns
-------
import numpy
test_labels=[1,2,3,4,5,6,7]
print(test_labels)
adata=numpy.array(test_labels)
print(adata)
def make_one_hot(data1):
    return (numpy.arange(10)==data1[:,None]).astype(numpy.integer)

my_one_hot =make_one_hot(adata)
print(my_one_hot)

生成的结果如下图:
one_hot 生成结果图

猜你喜欢

转载自blog.csdn.net/fu_shuwu/article/details/78964462