总是困惑numpy重塑如何处理负形状参数,这里是一个代码和输出的例子,谁能解释一下这里的重塑[- 1,1]发生了什么?谢谢。
相关文档,使用Python 2.7。
http://docs.scipy.org/doc/numpy/reference/generated/numpy.reshape.htmlimport 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.]]
-1
用于从一个缺失的长度推断另一个缺失的长度。例如,将(3,4,5)
重塑为(-1,10)
相当于将(6,10)
重塑,因为6
是唯一对其他输入有意义的长度。
From reshape
docs:
一个形状尺寸可以是-1。在这种情况下,值是推断出来的从数组的长度和剩余的维度。
在您的示例中,它用于将(3,)S
转换为(3,1)数组的常见任务。我想在这个特殊的情况下,使用S[:, None]
会有同样的效果。