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