我在列表中有以下向量:
Q= [(0, 0.2815994630432826), (2, 0.678491614691639), (3, 0.678491614691639)]
我尝试仅总结浮动部分
(ie Q= 0.2815994630432826 + 0.678491614691639 + 0.678491614691639)
因为第一部分是我不想要的指数。请参阅以下代码:
aba=[]
for doc in corpus_tfidf:
con = round(np.sum(doc),2)
aba.append(con)
print aba
以下是我得到的结果:(6.64)
我的代码添加了索引,然后是浮点数。我的意图是只加上浮点数并输出总数。任何想法?,提前谢谢。
注意:( for循环是因为Q
只是具有此类向量的数百个文档中的一个。)
答案 0 :(得分:0)
这样的东西? (这要求您要总结的元素位于元组中的第二个位置)
>>> Q= [(0, 0.2815994630432826), (2, 0.678491614691639), (3, 0.678491614691639)]
>>> from operator import itemgetter
>>> sum(map(itemgetter(1), Q))
1.6385826924265605
否则,你可以建立一个列表并sum
向上。
>>> sum([val for _, val in Q])
1.6385826924265605
答案 1 :(得分:0)
你可以用,
reduce(lambda x, y: x + y, map(lambda x : x[1], Q))
获取Q中的浮点总和。
Map在单独的列表中单独获取元组的第二部分,reduce会计算此新列表的元素总和。
或者简单地说,你也可以这样做
sum([x[1] for x in Q])
或者这个,
reduce(lambda x, y : (0, x[1] + y[1]), Q)[1]
答案 2 :(得分:0)
我认为最快捷,最简单的方法是使用sum函数和列表理解
>>> Q
[(0, 0.2815994630432826), (2, 0.678491614691639), (3, 0.678491614691639)]
>>> sum([i[1] for i in Q])
1.6385826924265605
>>>