Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/301.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:逐元素对数组求和_Python_Arrays_Aggregation - Fatal编程技术网

Python:逐元素对数组求和

Python:逐元素对数组求和,python,arrays,aggregation,Python,Arrays,Aggregation,我有5个模型的一些概率输出,我对每个元素的概率求和,如下所示: probs = [None] * 5 for i in range(0,5): probs[i] = models[i].predict_proba(X) probs[0] + probs[1] + probs[2] + probs[3] + probs[4] 这个很好用 然后,我尝试通过以下操作简化上述代码: probs = [None] * 5 results = [None] for i in range(0,5)

我有5个模型的一些概率输出,我对每个元素的概率求和,如下所示:

probs = [None] * 5

for i in range(0,5):
  probs[i] = models[i].predict_proba(X)

probs[0] + probs[1] + probs[2] + probs[3] + probs[4]
这个很好用

然后,我尝试通过以下操作简化上述代码:

probs = [None] * 5
results = [None]

for i in range(0,5):
  probs[i] = models[i].predict_proba(X)
  results += probs[i]

results
但出现以下错误:

TypeError unsupported operand type(s) for +: 'NoneType' and 'float' 
TypeErrorTraceback (most recent call last)
<ipython-input-20-8d4d443a7428> in <module>()
      4 for i in range(0,5):
      5   probs[i] = models[i].predict_proba(X)
----> 6   results += probs[i]
      7 
      8 results

TypeError: unsupported operand type(s) for +: 'NoneType' and 'float'

您的问题是,您试图将浮点添加到“无”。您可以使用列表来大大简化代码:

probs = [models[i].predict_proba(X) for i in range(5)]

然后,为了求和,只需sumprobs

您的问题是您试图将浮点值添加到无。您可以使用列表来大大简化代码:

probs = [models[i].predict_proba(X) for i in range(5)]
然后,要获得总和,只需在开始时将[None]指定为结果,然后尝试在for循环的第一次迭代中立即添加它,这将导致错误消息

相反,您可以尝试使用列表理解,因为使用Python时:

result = sum([models[i].predict_proba(X) for i in range(5)])
您在开始时将[None]指定为结果,然后尝试在for循环的第一次迭代中立即添加它,这会导致错误消息

相反,您可以尝试使用列表理解,因为使用Python时:

result = sum([models[i].predict_proba(X) for i in range(5)])

您将结果定义为列表,但它应该是浮点类型。 试试这个:

results = 0

您将结果定义为列表,但它应该是浮点类型。 试试这个:

results = 0

这应该可以解决问题:

probs = [None] * 5
results = np.zeros(data.shape)

for i in range(0,5):
  probs[i] = models[i].predict_proba(X)
  results += probs[i]

results

其中,data.shape应该是模型[i]结果的预期形状。predict_probaX。

这应该解决问题:

probs = [None] * 5
results = np.zeros(data.shape)

for i in range(0,5):
  probs[i] = models[i].predict_proba(X)
  results += probs[i]

results

其中,data.shape应该是模型[i]结果的预期形状。predict_probaX。

为什么结果是列表?它不应该是一个浮点吗?只要将results设置为0,代码就会正常运行。但是,你应该真正地考虑下面的答案,因为它们是更多的python。为什么结果是一个列表?它不应该是一个浮点吗?只要将results设置为0,代码就会正常运行。然而,你应该真正地考虑下面的答案,因为它们是更多的pythic。