使用numpy sum函数时出错“无法使用灵活类型执行缩减”

时间:2016-04-23 15:07:30

标签: python python-3.x numpy counter

我有一个包含一行文字的数据集:['text1', 'text2', 'text 3', etc...]。我希望能够计算文本类型并对结果求和。这是我的代码:

dataset= ['text1', 'text2', 'text 3']
stats = Counter(dataset).most_common()
Total = np.sum(stats[1])

Stats变量以下列格式存储数据:[('text',1223)等......]

当我运行代码时,我收到一条错误消息:“无法使用灵活类型执行reduce”。我该如何解决这个问题?

2 个答案:

答案 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代码。