<
>

数据分析师一定要掌握的基础——描述性统计分析

2020-06-28 10:17:12 来源:易采站长站 作者:易采站长站整理


# 计算左边元素的值。
left = np.floor(index).astype(np.int32)
# 计算右边元素的值。
right = np.ceil(index).astype(np.int32)
# 获取index的小数部分weight与整数部分_ 。
weight, _ = np.modf(index)
# 根据左右两边的整数,加权计算四分位数的值。权重与距离成反比。
q = x[left] * (1 - weight) + x[right] * weight
print(q)

结果:[12.25 14.5 16.75],1/4分位12.25,2/4分位14.5,3/4分位16.75

weight, _ = np.modf(index)
中下划线的解释:
Python中我们对于不使用的变量,习惯用 _ 来命名变量。
也就是在2.25 4.5 6.75中,2,4,6整数部分我们不用,所以定义成下划线即可。

可视化呈现:

plt.figure(figsize=(15, 4))
plt.xticks(x)
plt.plot(x, np.zeros(len(x)), ls="", marker="D", ms=15, label="元素值")
plt.plot(q, np.zeros(len(q)), ls="", marker="X", ms=15, label="四分位值")
for v in q:
plt.text(v, 0.01, s=v, fontsize=15)
plt.legend()

在这里插入图片描述
结论:
四分位值不一定出现在我们数据的元素中。

我们刚才自行计算了每个四分位的值,但是,其实在Python中,Numpy与Pandas提供了相关的方法,无需我们自行计算。

Numpy中计算四分位数:

x = [1, 3, 10, 15, 18, 20, 23, 40]# quantile与percentile都可以计算分位数,不同的是,quantile方法,
# q(要计算的分位数)的取值范围为[0, 1],而percentile方法,q的
# 取值范围为[0, 100]。
print(np.quantile(x, q=[0.25, 0.5, 0.75]))
print(np.percentile(x, q=[25, 50, 75]))

结果:
[ 8.25 16.5 20.75][ 8.25 16.5 20.75]

Numpy 中quantile与percentile计算四分位数的区别:

quantile方法, q(要计算的分位数)的取值范围为[0, 1]percentile方法,q的取值范围为[0, 100]。

Pandas中计算四分位数:

x = [1, 3, 10, 15, 18, 20, 21, 23, 40]s = pd.Series(x)
print(s.describe())

在这里插入图片描述
在上面的结果中,我们如何将四分之一分位的值提取出来呢?

s.describe()[4]s.describe()['25%']s.describe().iloc[4]s.describe().loc['25%']s.describe().ix[4]s.describe().ix['25%']

建议使用 s.describe().iloc[4] 和 s.describe().loc[‘25%’] 这两种方式取值,因为更具有针对性,分别是位置索引和标签索引取值,不容易产生错误。

暂时禁止评论

微信扫一扫

易采站长站微信账号