使用numpy.histogram遇TypeError:存在未预期参数'normed'
解决numpy.histogram中normed参数报错的问题
问题原因
你使用的numpy 1.24.3版本已经完全移除了normed参数——该参数在numpy 1.20版本就被标记为废弃,官方用density参数替代了它,这就是触发TypeError的直接原因。
修正后的代码
将normed=True替换为density=True即可正常运行:
import numpy as np np.histogram(np.arange(4), bins=np.arange(5), density=True)
归一化逻辑说明
density=True会将直方图归一化为概率密度,所有区间的面积之和为1。针对你的输入,运行结果为:(array([0.25, 0.25, 0.25, 0.25]), array([0, 1, 2, 3, 4]))- 若你需要的是各区间计数占总数的比例(数值之和为1),可通过
weights参数实现:
输出结果:import numpy as np data = np.arange(4) counts, bins = np.histogram(data, bins=np.arange(5), weights=np.ones_like(data)/len(data)) print(counts, bins)[0.25 0.25 0.25 0.25] [0 1 2 3 4]
关于预期结果的补充
你给出的预期结果(array([0.2,0.25,0.25]),array([0,1,2,3,4]))和当前输入不匹配,可能是数据或bins参数定义有误。若要得到该结果,建议检查输入数据或bins的设置是否正确。
内容的提问来源于stack exchange,提问作者Talha Tayyab
相关产品推荐
相关产品推荐

