numpy reshape confusion with negative shape values
Question: Always confused how numpy reshape handle negative shape parameter, here is an
example of code and output, could anyone explain what happens for reshape [-1,
1] here? Thanks.

Related document, using Python 2.7.

<http://docs.scipy.org/doc/numpy/reference/generated/numpy.reshape.html>

    
    
    import numpy as np
    from sklearn.preprocessing import LabelEncoder
    from sklearn.preprocessing import OneHotEncoder
    
    S = np.array(['box','apple','car'])
    le = LabelEncoder()
    S = le.fit_transform(S)
    print(S)
    ohe = OneHotEncoder()
    one_hot = ohe.fit_transform(S.reshape(-1,1)).toarray()
    print(one_hot)
    
    [1 0 2]
    [[ 0.  1.  0.]
     [ 1.  0.  0.]
     [ 0.  0.  1.]]
    


Answer: `-1` is used to infer one missing length from the other. For example reshaping
`(3,4,5)` to `(-1,10)` is equivalent to reshaping to `(6,10)` because `6` is
the only length that makes sense form the other inputs.

