【问题标题】:I'm getting the following error when I run my code - TypeError: must be real number, not list运行代码时出现以下错误 - TypeError: must be real number, not list
【发布时间】:2021-07-11 03:41:13
【问题描述】:

这就是问题所在:

您将获得一个列表列表,每个子列表的长度为 2 即 [[x,y],[p,q],[l,m]..[r,s]] 认为它就像一个n行两列矩阵 一种。第一列 Y 将包含整数值 湾。第二列????????????????????????将有浮点值 你的任务是找出 ??????(????,????????????????????????)=−1∗1?? ??Σ????????????????????????ℎ??????,?????????????????? ???????????????????????????(??????????????????10(?????????? ???????????????)+(1−??????)????????????10(1−???????? ???????????????)) 这里n是矩阵中的行数 前任: [[1, 0.4], [0, 0.5], [0, 0.9], [0, 0.3], [0, 0.6], [1, 0.1], [1, 0.9], [1, 0.8]] 输出: 0.4243099 −18⋅((1⋅????????????10(0.4)+0⋅????????????10(0.6))+(0⋅??? ?????????10(0.5)+1⋅????????????10(0.5))+...+(1⋅????????? ???10(0.8)+0⋅????????????10(0.2)))

我的代码 -

def compute_log_loss(A):
    Y = len(A)
    Ys = len(A[0])    
    l = 0

    for i in range(Y):
        for j in range(Ys):
            l += A[i]*math.log10(A[j]) + (1-A[i])*math.log10(1-A[j])
    loss=(-1*l)/Y
    print(loss)
A = [[1, 0.4], [0, 0.5], [0, 0.9], [0, 0.3], [0, 0.6], [1, 0.1], [1, 0.9], [1, 0.8]]
compute_log_loss(A)```

Im getting the following error :

TypeError                                 Traceback (most recent call last)
<ipython-input-97-bd3b5244f95b> in <module>
     17     print(loss)
     18 A = [[1, 0.4], [0, 0.5], [0, 0.9], [0, 0.3], [0, 0.6], [1, 0.1], [1, 0.9], [1, 0.8]]
---> 19 compute_log_loss(A)

<ipython-input-97-bd3b5244f95b> in compute_log_loss(A)
     13     for i in range(Y):
     14         for j in range(Ys):
---> 15             l += A[i]*math.log10(A[j]) + (1-A[i])*math.log10(1-A[j])
     16     loss=(-1*l)/Y
     17     print(loss)

TypeError: must be real number, not list

【问题讨论】:

  • 下次通过在这三个反引号后面指定语言,将其格式化为 Python 代码。 ```蟒蛇```

标签: list typeerror


【解决方案1】:
A[i] is a list not an single element.
A = [[1, 0.4], [0, 0.5], [0, 0.9], [0, 0.3], [0, 0.6], [1, 0.1], [1, 0.9], [1, 0.8]]
A[0] =[1, 0.4]
A[0][0] =1
A[0][1] =0.4

【讨论】:

  • 欢迎来到 Stack Overflow,感谢您提供答案。您能否编辑您的答案以包括对您的代码的解释?这将有助于未来的读者更好地了解正在发生的事情,尤其是那些刚接触该语言并难以理解概念的社区成员。
猜你喜欢
  • 2021-07-26
  • 2022-11-16
  • 2022-11-16
  • 1970-01-01
  • 2020-03-28
  • 1970-01-01
  • 2019-12-29
  • 1970-01-01
  • 2019-09-14
相关资源
最近更新 更多