2017-10-18 2 views
0

numpy 배열 x = np.array([0, 1, 2])이 있다고 말하면 파이썬에서 내장 함수를 사용하여 요소를 해당 배열로 변환 할 수 있습니까?1d numpy 배열의 요소를 numpy 배열로 대체

x의 0을 [1, 0, 0], 1에서 [0, 1, 0], 2에서 [0, 0, 1]로 변환하고 예상 출력이 np.array([[1, 0, 0], [0, 1, 0], [0, 0, 1]])입니다.

나는 x[x == 0] = np.array([1, 0, 0])을 시도했지만 작동하지 않습니다.

+0

당신은 [OneHotEncoder] (http://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.OneHotEncoder.html가) – MaxU

+0

오, 그래, 그것은이다 사용할 수 있습니다 복제. 그 질문의 말씨가 정말 다르니까 나는 그 게시물에 대답의 링크에 멋진 답변을 찾을 수 있도록 .... 나는 그것을 발견하지 못했습니다 .... 나는 내가 그것을 플래그로 내 질문을 삭제할 수없는 것 같습니다. – user21

답변

0

데모 :

In [38]: from sklearn.preprocessing import OneHotEncoder 

In [39]: ohe = OneHotEncoder() 

# modern versions of SKLearn methods don't like 1D arrays 
# they expect 2D arrays, so let's make it happy ;-)  
In [40]: res = ohe.fit_transform(x[:, None]) 

In [41]: res.A 
Out[41]: 
array([[ 1., 0., 0.], 
     [ 0., 1., 0.], 
     [ 0., 0., 1.]]) 

In [42]: res 
Out[42]: 
<3x3 sparse matrix of type '<class 'numpy.float64'>' 
     with 3 stored elements in Compressed Sparse Row format> 
관련 문제