Python:逐元素对数组求和
我有5个模型的一些概率输出,我对每个元素的概率求和,如下所示: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)
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。