我想添加
distances
[array([2.0786226e-03, 3.9023757e-03, 3.4480095e-03, 5.1999092e-04], dtype=float32), array([0.0031136 , 0.00344056, 0.00739563, 0.0311079 ],
dtype=float32), array([1.8880665e-03, 3.0295253e-03, 4.0802956e-03, 2.6324868e-02], dtype=float32), array([0.00330418, 0.00431347, 0.00802791, 0.00426304],
dtype=float32)]
期望输出
[0.00994899872, 0.04505769, 0.0353227554, 0.0199086]
我尝试了以下方法,但它添加了所有元素并给出了标量值
print(sum( sum(x) if isinstance(x, list) else x for x in L ))
4条答案
按热度按时间sg24os4d1#
假设
L
是distances
,你就快到了:eqoofvh92#
你可以用
numpy
这样做,就像它给出了所需的输出
elcex8rz3#
在我们继续之前,我想说的是,您应该指定它与numpy一起使用。
为什么只做一行?使用一个简单的for循环。在每个列表中取第一项,分别相加。要存储它,请将其附加到列表中,然后转到第二项。找到工作代码后,只需尝试缩短它。这是一个很好的python实践。
wr98u20j4#
由于列表中已有numpy对象,因此可以对这些对象求和。
numpy对象数组具有元素级实现,因此可以求和:
a+b的结果将是:
正如@bruno提到的,您可以使用内置方法
numpy.sum
自动执行此操作。