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

如何实现类似numpy.bincount的功能以统计0-1区间浮点数的频次?

处理0-1浮点数的频次统计替代方案

由于np.bincount仅支持整数类型,针对0到1之间的浮点数,可通过以下几种方式实现类似的频次统计功能:

方法1:用np.unique直接统计唯一值频次

np.unique支持浮点数输入,能同时返回数组中的唯一值和对应出现次数:

import numpy as np

arr = np.array([0.91, 0.74, 1.0, 0.89, 0.91, 0.74])
values, counts = np.unique(arr, return_counts=True)

print("唯一值:", values)
print("对应频次:", counts)

输出结果:

唯一值: [0.74 0.89 0.91 1.  ]
对应频次: [2 1 2 1]

方法2:用pandas.value_counts实现灵活统计

如果项目已引入pandas,value_counts可以直接输出频次,还支持排序、归一化等扩展操作:

import pandas as pd

arr = np.array([0.91, 0.74, 1.0, 0.89, 0.91, 0.74])
count_result = pd.value_counts(arr)

print(count_result)

输出结果:

0.74    2
0.91    2
0.89    1
1.00    1
dtype: int64

方法3:分箱统计(按区间聚合频次)

若需要将0-1范围内的浮点数划分成连续区间统计频次(类似整数版bincount的区间统计逻辑),可以使用np.histogram:

import numpy as np

arr = np.array([0.91, 0.74, 1.0, 0.89, 0.91, 0.74])
# 把0-1划分为4个等宽区间,返回各区间的频次和边界
counts, bin_edges = np.histogram(arr, bins=4, range=(0, 1))

print("区间边界:", bin_edges)
print("各区间频次:", counts)

输出结果:

区间边界: [0.   0.25 0.5  0.75 1.  ]
各区间频次: [0 0 2 4]

内容的提问来源于stack exchange,提问作者maximus

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 08:12:15