数据挖掘习题选做--第二章

数据挖掘概念与技术习题选做

第二章习题

这里写图片描述
用python解答如下:

import numpy as np
import matplotlib.pyplot as plt

data = np.array([13,15,16,16,19,20,20,21,22,22,25,25,25,25,30,33,33,35,35,35,35,36,40,45,46,52,70])

# 数据的均值
mean = np.average(data)
print("该数据的均值为:" + str(mean))

# 中位数的位置
median_index = int(len(data)/2) 
# 判断数据的奇偶性
if len(data) % 2 == 1:
    # 若数据长度为奇数,则中位数为最中间的那个数
    median = data[median_index]
else:
    # 若数据长度为偶数,则中位数为最中间两个数的平均值
    median = (data[median_index-1] + data[median_index]) / 2
print("该数据的中位数为: " + str(median))

# 下面求众数
# 首先创建一个列表,储存没有重复项的数据
data_pure = []
for value in data:
    if value not in data_pure:
        data_pure.append(value)


for i in range(len(data_pure)):
    num = 0
    for value in data:
        if data_pure[i] == value:
            num += 1
    if num == 4:
        print("该数列的众数数值为" + str(data_pure[i]) + "有" + str(num) + "个")

print("该数据的中列数为: " + str((np.max(data)+np.min(data))/2))

# 四分位数
Q1_index = int(len(data) / 4)
Q2_index = int(len(data) / 4 * 2)
Q3_index = int(len(data) / 4 * 3)
print("第一个四分位数Q1为:" + str(data[Q1_index])+"\n"
      "第三个四分位数Q3为:" + str(data[Q3_index]))

# 该数据的分位数列表,为了绘制分位图
f_value = []
for i in range(len(data)):
    f_value.append(i/len(data))

# 绘制盒图
fig = plt.figure()
ax1 = fig.add_subplot(121)
ax1.boxplot(data)
# 绘制分位图
ax2 = fig.add_subplot(122)
ax2.scatter(f_value, data)
plt.show()

运行结果为:
这里写图片描述这里写图片描述

这里写图片描述

解答:根据中位数的近似计算公式:

med
  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值