首页 > 解决方案 > 我如何解释两个“=”和整个这个表达式?

问题描述

train_acc = np.mean(y_train == y_train_pred)

这个表达式的赋值和求值是如何工作的?

标签: pythonpython-3.xnumpydebuggingneural-network

解决方案


很简单,假设你有这两个 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返回其中一个。TrueFalse

希望这能回答你的问题!!


推荐阅读