Numpy重塑与负形状值混淆



总是困惑numpy重塑如何处理负形状参数,这里是一个代码和输出的例子,谁能解释一下这里的重塑[- 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.]]

-1用于从一个缺失的长度推断另一个缺失的长度。例如,将(3,4,5)重塑为(-1,10)相当于将(6,10)重塑,因为6是唯一对其他输入有意义的长度。

From reshape docs:

一个形状尺寸可以是-1。在这种情况下,值是推断出来的从数组的长度和剩余的维度。

在您的示例中,它用于将(3,)S转换为(3,1)数组的常见任务。我想在这个特殊的情况下,使用S[:, None]会有同样的效果。

相关内容

  • 没有找到相关文章

最新更新