Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python [target==t,1]的语法解释_Python_Numpy_Machine Learning - Fatal编程技术网

Python [target==t,1]的语法解释

Python [target==t,1]的语法解释,python,numpy,machine-learning,Python,Numpy,Machine Learning,我正在读一本书:“用Python构建机器学习系统”。 在虹膜日期分类中,我很难理解以下语法: plt.scatter(features[target == t,0], features[target == t,1], marker=marker, c=c) 具体来说,features[target==t,0]实际上意味着什么?看看代码,似乎features和target都是数组,而

我正在读一本书:“用Python构建机器学习系统”。 在虹膜日期分类中,我很难理解以下语法:

plt.scatter(features[target == t,0],
                   features[target == t,1],
                   marker=marker,
                   c=c)
具体来说,
features[target==t,0]
实际上意味着什么?

看看代码,似乎
features
target
都是数组,而
t
是一个数字。此外,
功能
目标
的行数相同

在这种情况下,
特性[target==t,0]
执行以下操作:

  • target==t
    创建与
    target
    形状相同的布尔数组(如果值为
    t
    ,则为
    True
    ,否则为
    False

  • features[target==t,0]
    features
    中选择与
    target==t
    数组中的
    True
    对应的行。
    0
    指定应选择
    功能的第一列

换句话说,代码选择
特征
的行,其中
目标
等于
t
,并且从这些行中,
0
选择第一列。

查看代码,似乎
特征
目标
都是数组,
t
是一个数字。此外,
功能
目标
的行数相同

在这种情况下,
特性[target==t,0]
执行以下操作:

  • target==t
    创建与
    target
    形状相同的布尔数组(如果值为
    t
    ,则为
    True
    ,否则为
    False

  • features[target==t,0]
    features
    中选择与
    target==t
    数组中的
    True
    对应的行。
    0
    指定应选择
    功能的第一列


换言之,代码选择
特征
的行,其中
目标
等于
t
,并且从这些行中,
0
选择第一列。

对此的更好解释可能是,此for循环将特征数组拆分为3个不同的数组,每一种都对应于一种特定的鸢尾。 所有这些阵列都具有特定设备(实例)的第一个功能。 如果您
打印功能[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]

对此更好的解释可能是,这个for循环将特征数组分割为3个不同的数组,每个数组对应一种特定的虹膜。 所有这些阵列都具有特定设备(实例)的第一个功能。 如果您
打印功能[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]

target==t
如果它们相等,则计算结果为
True
;如果它们不相等,则计算结果为
False
。然后你就有了,例如,
特性[True,0]
@JonathonReinhart,在这种情况下,这可能是不正确的。它通过布尔数组使用索引。@cel但他就是这么说的@DanielRoseman,哦,那是个误会。@DanielRoseman事实上,他不是这么说的。布尔数组和布尔数组不同。请参阅下面已接受的答案。
target==t
如果它们相等,将计算为
True
;如果它们不相等,则计算为
False
。然后你就有了,例如,
特性[True,0]
@JonathonReinhart,在这种情况下,这可能是不正确的。它通过布尔数组使用索引。@cel但他就是这么说的@DanielRoseman,哦,那是个误会。@DanielRoseman事实上,他不是这么说的。布尔数组和布尔数组不同。请参阅下面的公认答案。