我在编写一个将 2 个参数(值、分隔符)作为列表并将每个范围中的元素数(由分隔符中的数字确定)作为一个列表返回的函数时遇到了麻烦。等于其中一个分隔符的元素应计入下面的 bin 中。
我使用 if 和 elif 对数字进行排序,这在某种程度上给了我正确的想法。但是,我正在努力研究如何应用“箱数 = 分隔线数 + 1”这一事实
def histogram(values, dividers):
count1 = 0
count2 = 0
count3 = 0
index = 0
for index in range(len(values)):
if values[index] <= min(dividers):
count1 = count1 + 1
elif min(dividers) < values[index] <= min(dividers):
count2 = count2 + 1
elif values[index] > max(dividers):
count3 = count3 + 1
index = index + 1
print("Number of elements in each bin is ", [count1, count2, count3])
例如,当我运行参数 ([1,...,10], [2,5,7]) 时,答案应该是 [2,3,2,3] 因为范围内的元素数量低于 2, 2~5(不含5)、5~7(不含7)及7以上分别为2、3、2、3。但是目前,我得到了输出 [2,5,3]。
PS 我的目标是在不使用 numpy.histogram 或任何 matplotlib 相关内容的情况下编写函数
慕后森
相关分类