我有numpy数组
X=array([[0, 44.0, 72000.0],
[2, 27.0, 48000.0],
[1, 30.0, 54000.0],
[2, 38.0, 61000.0],
[1, 40.0, 63777.0],
[0, 35.0, 58000.0],
[2, 38.0, 52000.0],
[0, 48.0, 79000.0],
[1, 50.0, 83000.0],
[0, 37.0, 67000.0]], dtype=object)
我想要提取整个第3列,我像这样X[:,2:3]
切片,但它不是scikit学习fit_transform函数给出了错误,但当我像这样X[:,2]
切片时,它运行正常。
X[:,2:3]
提供输出
array([[72000.0],
[48000.0],
[54000.0],
[61000.0],
[63777.77777777778],
[58000.0],
[52000.0],
[79000.0],
[83000.0],
[67000.0]], dtype=object)
和X[:,2]
提供输出
array([72000.0, 48000.0, 54000.0, 61000.0, 63777.77777777778, 58000.0,
52000.0, 79000.0, 83000.0, 67000.0], dtype=object)
答案 0 :(得分:0)
不同之处在于阵列的形状:
代码
from numpy import *
X=array([[0, 44.0, 72000.0],
[2, 27.0, 48000.0],
[1, 30.0, 54000.0],
[2, 38.0, 61000.0],
[1, 40.0, 63777.0],
[0, 35.0, 58000.0],
[2, 38.0, 52000.0],
[0, 48.0, 79000.0],
[1, 50.0, 83000.0],
[0, 37.0, 67000.0]], dtype=object)
X1 = X[:,2:3]
X2 = X[:,2]
print(X1.shape)
print(X2.shape)
结果:
(10L, 1L)
(10L,)
正如您所见形状不一样。
Sklearn一般使用(数字)格式。 考虑阅读每个sklearn算法/方法的文档,并检查他们在网站上的示例。