如何解释两个“ =”以及整个表达式?

时间:2019-09-26 05:15:36

标签: python python-3.x numpy debugging neural-network

train_acc = np.mean(y_train == y_train_pred)

此表达式的分配和评估如何工作?

2 个答案:

答案 0 :(得分:1)

简单,让我们假设您有以下两个numpy数组:

y_train = np.array([1, 2, 3, 4])
y_train_pred = np.array([1, 2, 3, 5])

我们可以看到,这两个数组仅在最后一个元素上有所不同。因此,当我们应用y_train == y_train_pred时,我们将得到:

>>> y_train == y_train_pred
array([ True,  True,  True, False])
# same as array([ 1,  1,  1, 0])

现在,当我们应用np.mean时,我们将得到其平均值3/4

>>> np.mean(y_train == y_train_pred)
0.75

因此,要回答您的问题:==在前面的语法中是什么意思?它仅表示遍历numpy数组,并检查y_train中的每个元素是否等于y_train_pred的相对元素,如果匹配则返回True,如果不匹配则返回False t。

希望这能回答您的问题!

答案 1 :(得分:0)

y_train == y_train_pred是在逐个元素的基础上求值的,结果是一个布尔数组,其元素数量与y_trainy_train_pred中的元素相同。当两个数组中的两个对应元素相同时,结果元素为True。否则是错误的。然后np.mean()计算True元素的数量并将其除以数组的长度。结果将分配给train_acc