我正在尝试使用scipy的stats.mode
函数从字符串数组中获取最常见的字符串。但该函数由于某种原因截断字符串。
>>> a
array([' State-gov', ' Self-emp-not-inc', ' Private', ..., ' Private',
' Private', ' Self-emp-inc'],
dtype='|S27')
>>> stats.mode(a)
(array([' P'],
dtype='|S2'), array([ 22696.]))
(答案应该是' Private'
。)任何想法如何获得完整的字符串?为什么会发生这种情况?
答案 0 :(得分:3)
不确定你能用sp.stats.mode()
解决 - 我之前也遇到过这种奇怪的行为。
对于非scipy解决方案,您可以使用collections.Counter
:
collections.Counter(a).most_common(1)
这将返回一个包含字符串及其出现次数的元组。
答案 1 :(得分:1)
它正在/正在发生,因为实现中存在一个错误,其中结果数组未使用与输入数组相同的dtype进行初始化。我提交了pull request来修复它已被接受,所以我想它将在scipy 1.9中修复。