Lin*_* Ma 4 python numpy machine-learning python-2.7 scikit-learn
总是混淆numpy reshape如何处理负形状参数,这里是一个代码和输出的例子,任何人都可以解释reshape [-1,1]在这里发生了什么?谢谢.
相关文档,使用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.]]
Run Code Online (Sandbox Code Playgroud)
从reshape
文档:
一个形状维度可以是 -1。在这种情况下,该值是从数组的长度和剩余维度推断出来的。
在您的情况下,它用于将 (3,)S
转换为 (3,1) 数组的常见任务。我认为在这种特殊情况下使用S[:, None]
会产生相同的效果。
归档时间: |
|
查看次数: |
1622 次 |
最近记录: |