我正在完成基于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]
这些切片命令到底产生了什么?
答案 0 :(得分:1)
X = array[:,0:4]
X是一个2D数组,包含array
中的所有行,第1列 st ,2 nd ,3 rd ,和4 th 列([0:4]
- sepal-length
,sepal-width
,petal-length
和petal-width
)。它的形状为(len(array), 4)
Y = array[:, 4]
Y是一个2D数组,仅包含array
中的所有行,以及仅包含5 th 列(class
)的行。它的形状是(len(array),1)
X
正在将数值数据提取为训练数据(第0-3列),而Y
只是提取相应的标签(第4列)。