用于启动test_train_split的数组切片表示法?

时间:2017-08-04 05:05:55

标签: python numpy scikit-learn slice

我正在完成基于Iris数据集的机器学习教程:

    sepal-length  sepal-width  petal-length  petal-width        class
0            5.1          3.5           1.4          0.2  Iris-setosa
1            4.9          3.0           1.4          0.2  Iris-setosa
2            4.7          3.2           1.3          0.2  Iris-setosa
...(146 more rows)

数据集最终被分成两个独立的数组,X和Y,然后输入test_train_split

array = dataset.values
X = array[:,0:4]
Y = array[:,4]
validation_size = 0.20
seed = 7
X_train, X_validation, Y_train, Y_validation = train_test_split(X, Y,
    test_size=validation_size, random_state=seed)

我试图了解数组切片表示法:

X = array[:,0:4]
Y = array[:,4]

这些切片命令到底产生了什么?

1 个答案:

答案 0 :(得分:1)

X = array[:,0:4]

X是一个2D数组,包含array中的所有行,第1列 st ,2 nd ,3 rd ,和4 th 列([0:4] - sepal-lengthsepal-widthpetal-lengthpetal-width)。它的形状为(len(array), 4)

Y = array[:, 4]

Y是一个2D数组,仅包含array中的所有行,以及仅包含5 th 列(class)的行。它的形状是(len(array),1)

X正在将数值数据提取为训练数据(第0-3列),而Y只是提取相应的标签(第4列)。