numpy数组中这两个切片有什么区别?

时间:2017-07-11 09:14:33

标签: python arrays numpy

我有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)

1 个答案:

答案 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算法/方法的文档,并检查他们在网站上的示例。