Creating a hot vector (numpy)

Paulo da Silva p_s_d_a_s_i_l_v_a_ns at netcabo.pt
Sun Apr 17 20:46:25 EDT 2016


Hi all.

I have seen this "trick" to create a hot vector.

In [45]: x
Out[45]: array([0, 1])

In [46]: y
Out[46]: array([1, 1, 1, 0, 0, 1, 0, 0], dtype=uint8)

In [47]: y[:,None]
Out[47]:
array([[1],
       [1],
       [1],
       [0],
       [0],
       [1],
       [0],
       [0]], dtype=uint8)

In [48]: x==y[:,None]
Out[48]:
array([[False,  True],
       [False,  True],
       [False,  True],
       [ True, False],
       [ True, False],
       [False,  True],
       [ True, False],
       [ True, False]], dtype=bool)

In [49]: (x==y[:,None]).astype(np.float32)
Out[49]:
array([[ 0.,  1.],
       [ 0.,  1.],
       [ 0.,  1.],
       [ 1.,  0.],
       [ 1.,  0.],
       [ 0.,  1.],
       [ 1.,  0.],
       [ 1.,  0.]], dtype=float32)

How does this (step 48) work?

Thanks



More information about the Python-list mailing list