
简单而又奇妙的数值
|
13
>>> pd.qcut(large_counts, 4, labels=False)
array([1, 2, 3, 0, 0, 1, 1, 2, 2, 3, 3, 0, 0, 2, 1, 0, 3], dtype=int64)
# 计算实际的分位数值
>>> large_counts_series = pd.Series(large_counts)
>>> large_counts_series.quantile([0.25, 0.5, 0.75])
0.25 122.0
0.50 926.0
0.75 8286.0
dtype: float64
2.3
对数变换
上一节简要地介绍了通过取计数值的对数将数据映射到指数宽度分箱的方法。这一节,我
们深入地研究一下这种方法。
对数函数是指数函数的反函数,它的定义是
log
a
(
a
x
) =
x
,其中
a
是个正的常数,
x
可以是
任意正数。因为
a
0
= 1
,所以有
log
a
(1) = 0
。这意味着对数函数可以将
(0, 1)
这个小区间中
的数映射到
(
-
∞
, 0)
这个包括全部负数的大区间上。函数
log
10
(
x
)
可以将区间
[1, 10]
映射到
[0, 1]
,将
[10, 100]
映射到
[1, 2]
,以此类推。换言之,对数函数可以对大数值的范围进行
压缩,对小数值的范围进行扩展。
x
越大,
log(
x
)
增长得越慢。
通过查看对数函数的图形(见图
2-6
),可以更好地理解上面的内容。注意一下横轴上从
100
到
1000
的
x
值是如何被压缩到纵轴上从
2.0 ...