例如,我有一个数组流,其数字范围从0.0
到10.0
包含。
我想快速将数字分配arr
到5
等长的箱子中。
等长我的意思是 bin 间隔是[0.0, 2.0), [2.0, 4.0), [4.0, 6.0), [6.0, 8.0), [8.0, 10.0]
.
问题是最后一个间隔与其他间隔不同。
测试:
import numpy as np
# Things we know and can pre-calculate
n_bins = 5
minimal = 0.0
maximal = 10.0
reciprocal_bin_length = n_bins / (maximal - minimal)
# Let's say the stream gives 1001 numbers every time.
data = np.arange(1001)/100
norm_data = (data - minimal) * reciprocal_bin_length
norm_data = norm_data.astype(int)
print(norm_data.max())
print(norm_data.min())
结果:
5
0
bin 索引应为 0、1、2、3 或 4,但不能为 5。