x = np.array([123,172,76,161,314,77,226,330,202,321,260,155,120,163,221,400,45,106,296,125,210,66,131,242,372]) x.sort() w = int(input("请输入等宽分箱的宽度:")) max = x.max() min = x.min() m = int(math.ceil((max - min)/w)) bins = [min + k*w for k in range(0,m + 1)] x_cuts = pd.cut(x, bins, right=False) number = pd.value_counts(x_cuts) rows = number.max() width = np.full([m, rows], 0) size = x.size a = 0 for j in range(0, m-1): for bin, count in number.items(): for i in range(count): if a < size: width[j][i] = x[a] a += 1 else: break # exit loop if no more values in x print(width) The answer is incorrect. I want to konw which step is wrong?
时间: 2023-05-25 11:05:05 浏览: 120
拉格朗日插值法python 数据预处理(采用拉格朗日插值法处理缺失值).zip
这是Python程序,其目的是将一个数组x进行等宽分箱操作,并输出分箱后每个箱子内的数据。程序中首先对数组x进行排序,然后通过用户输入的等宽分箱宽度w计算出共需要分为多少个箱子m,并构造出箱子的范围bins。接着使用pd.cut函数将x划分到对应的箱子内,并使用pd.value_counts统计每个箱子内的数据数量。程序最后通过numpy的矩阵操作将数据按照箱子顺序放入二维数组width中,以便输出每个箱子内的数据。
阅读全文