我有一个包含一行文字的数据集:['text1', 'text2', 'text 3', etc...]
。我希望能够计算文本类型并对结果求和。这是我的代码:
dataset= ['text1', 'text2', 'text 3']
stats = Counter(dataset).most_common()
Total = np.sum(stats[1])
Stats变量以下列格式存储数据:[('text',1223)等......]
当我运行代码时,我收到一条错误消息:“无法使用灵活类型执行reduce”。我该如何解决这个问题?
答案 0 :(得分:1)
这为您提供了所有数字的总和:
sum(s[1] for s in stats)
示例:
dataset= ['text1', 'text2', 'text 3']
stats = Counter(dataset).most_common()
total = sum(s[1] for s in stats)
现在:
>>> total
3
您还可以使用np.sum()
:
>>> np.sum(s[1] for s in stats)
3
答案 1 :(得分:0)
不太确定您要实现的目标,但numpy_indexed包可能有更适合您目的的界面:
import numpy_indexed as npi
unique, counts = npi.count(dataset)
total = counts.sum() # == len(dataset)
此外,npi可能更有效,因为它不会对python数据类型起作用,而只会使用矢量化的numpy代码。