You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用scipy.stats.itemfreq报错AttributeError,求解决方法

解决scipy.stats.itemfreq不存在的AttributeError问题

问题原因

scipy 1.0.0及更高版本已移除stats.itemfreq方法,你参考的教程基于旧版本scipy,因此调用时会触发AttributeError。

替代方案

以下是几种常用的替代方法,效果与原itemfreq一致:

1. 使用numpy.unique(推荐)

这是最接近原方法功能的替代,可返回唯一值及对应出现频率,支持一维/多维数组:

import numpy as np

# 一维数组示例
arr = np.array([1, 2, 2, 3, 3, 3])
values, counts = np.unique(arr, return_counts=True)
# 转换为类似itemfreq的二维表格格式
freq_table = np.column_stack((values, counts))
print(freq_table)

# 多维数组示例(比如二维数组)
arr_2d = np.array([[1,2], [2,3], [1,2]])
values_2d, counts_2d = np.unique(arr_2d, axis=0, return_counts=True)
freq_table_2d = np.column_stack((values_2d, counts_2d))
print(freq_table_2d)

2. 使用collections.Counter

适合处理Python列表,返回字典形式的频率统计,可按需转换为数组:

from collections import Counter
import numpy as np

arr = [1, 2, 2, 3, 3, 3]
count_result = Counter(arr)
# 转换为二维数组格式
freq_table = np.array(list(count_result.items()))
print(freq_table)

3. 降级scipy(不推荐)

如果必须使用原itemfreq方法,可以降级scipy到1.0.0以下版本,执行命令:

pip install scipy==0.19.1

但此方法不建议,因为旧版本存在安全隐患和功能缺失。

内容的提问来源于stack exchange,提问作者Md Aman Ullah

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 19:42:04