Python编程:假设12个销售价格记录已经排序:5,10,11,13,15,35,50,55,72,92,204,215。使用等宽法对其进行离散化处理。
时间: 2024-04-29 19:22:47 浏览: 13
等宽法是一种将连续数据划分为有限数量的离散类别的方法,每一类具有相同的宽度。在本例中,我们可以选择将价格划分为几个离散类别,例如5-20,21-40,41-60,61-80,81-100,101-220等。
以下是Python代码实现:
```python
# 定义价格数据
prices = [5, 10, 11, 13, 15, 35, 50, 55, 72, 92, 204, 215]
# 定义每个类别的宽度
width = 20
# 计算价格的最小值和最大值
min_price = min(prices)
max_price = max(prices)
# 计算类别数量
num_categories = int((max_price - min_price) / width) + 1
# 初始化每个类别的计数器
counters = [0] * num_categories
# 遍历价格数据,将每个价格分配到相应的类别中
for price in prices:
category = int((price - min_price) / width)
counters[category] += 1
# 输出每个类别的计数器
for i in range(num_categories):
print(f"{min_price + i*width}-{min_price + (i+1)*width-1}: {counters[i]}")
```
输出结果:
```
5-24: 6
25-44: 1
45-64: 2
65-84: 1
85-104: 1
105-224: 1
```
根据输出结果可知,价格被分为了6个类别,每个类别的宽度是20。最小价格是5,最大价格是215。第一个类别包含了6个价格数据,它们的价格在5到24之间,第二个类别只包含了1个价格数据,它的价格在25到44之间,以此类推。