我正在读这本书:"用Python构建机器学习系统"。 在Iris日期的分类中,我无法理解语法:
plt.scatter(features[target == t,0],
features[target == t,1],
marker=marker,
c=c)
具体来说,features[target == t,0]
实际意味着什么?
答案 0 :(得分:6)
查看this代码,似乎features
和target
都是数组,t
是数字。此外,features
和target
都有相同的行数。
在这种情况下,features[target == t, 0]
执行以下操作:
target == t
创建一个与target
形状相同的布尔数组(如果值为True
则为t
,否则为False
)。< / p>
features[target == t, 0]
从features
中选择与True
数组中的target == t
对应的行。 0
指定应选择features
的第一列。
换句话说,代码选择features
等于target
的{{1}}行,t
从这些行中选择第一列。< / p>
答案 1 :(得分:0)
对此的更好解释可能是这个for循环将特征数组分成3个不同的数组,每个数组对应于特定的Iris种类。
所有这些阵列都具有特定工厂(实例)的第一个特征。
如果您print features[target==t,0]
[ 5.1 4.9 4.7 4.6 5. 5.4 4.6 5. 4.4 4.9 5.4 4.8 4.8 4.3 5.8
5.7 5.4 5.1 5.7 5.1 5.4 5.1 4.6 5.1 4.8 5. 5. 5.2 5.2 4.7
4.8 5.4 5.2 5.5 4.9 5. 5.5 4.9 4.4 5.1 5. 4.5 4.4 5. 5.1
4.8 5.1 4.6 5.3 5. ]
[ 7. 6.4 6.9 5.5 6.5 5.7 6.3 4.9 6.6 5.2 5. 5.9 6. 6.1 5.6
6.7 5.6 5.8 6.2 5.6 5.9 6.1 6.3 6.1 6.4 6.6 6.8 6.7 6. 5.7
5.5 5.5 5.8 6. 5.4 6. 6.7 6.3 5.6 5.5 5.5 6.1 5.8 5. 5.6
5.7 5.7 6.2 5.1 5.7]
[ 6.3 5.8 7.1 6.3 6.5 7.6 4.9 7.3 6.7 7.2 6.5 6.4 6.8 5.7 5.8
6.4 6.5 7.7 7.7 6. 6.9 5.6 7.7 6.3 6.7 7.2 6.2 6.1 6.4 7.2
7.4 7.9 6.4 6.3 6.1 7.7 6.3 6.4 6. 6.9 6.7 6.9 5.8 6.8 6.7
6.7 6.3 6.5 6.2 5.9]