np.quantile()详解

numpy.quantile

numpy.quantile(a, q, axis=None, out=None, overwrite_input=False, interpolation=‘linear’, keepdims=False)

import numpy as np

arr = np.array([[0.77395605, 0.43887844, 0.85859792, 0.69736803 ],
                [0.09417735, 0.97562235, 0.7611397 , 0.78606431 ],
                [0.12811363, 0.45038594, 0.37079802, 0.92676499 ]])

axis=0

axis=0,先按列进行升序排列

[[0.09417735, 0.43887844, 0.37079802, 0.69736803 ],
 [0.12811363, 0.45038594, 0.7611397 , 0.78606431 ],
 [0.77395605, 0.97562235, 0.85859792, 0.92676499 ]]
np.quantile(arr, q=0.2, axis=0)
array([0.10775186, 0.44348144, 0.52693469, 0.73284654])
# n=3,q=0.2,n*p = 3*0.2 = 0.6, 0.6不足1按1看,那么在第(1,2)中间进行插值
# 0.4 为 2q
print(0.09417735 + 0.4*(0.12811363-0.09417735))
print(0.43887844 + 0.4*(0.45038594-0.43887844))
print(0.37079802 + 0.4*(0.7611397-0.37079802))
print(0.69736803 + 0.4*(0.78606431-0.69736803))
0.107751862
0.44348144
0.526934692
0.732846542
np.quantile(arr, q=0.4, axis=0)
array([0.12132637, 0.44808444, 0.68307136, 0.76832505])
# n=3,q=0.3,n*p = 3*0.4 = 1.2, 那么在第(1,2)中间进行插值
# 0.8 为 2q
print(0.09417735 + 0.8*(0.12811363-0.09417735))
print(0.43887844 + 0.8*(0.45038594-0.43887844))
print(0.37079802 + 0.8*(0.7611397-0.37079802))
print(0.69736803 + 0.8*(0.78606431-0.69736803))
0.12132637400000001
0.44808444
0.683071364
0.768325054

axis=1

# axis=1,先按行进行升序排列
arr.sort()
arr
array([[0.43887844, 0.69736803, 0.77395605, 0.85859792],
       [0.09417735, 0.7611397 , 0.78606431, 0.97562235],
       [0.12811363, 0.37079802, 0.45038594, 0.92676499]])
np.quantile(arr, q=0.75, axis=1, keepdims=True)
array([[0.79511652],
       [0.83345382],
       [0.5694807 ]])
# n=4,q=0.75,n*p = 4*0.75 = 3, 那么在第(3,4)中间进行插值
# 0.25 为 1-q
print(0.77395605+0.25*(0.85859792-0.77395605))
print(0.78606431+0.25*(0.97562235-0.78606431))
print(0.45038594+0.25*(0.92676499-0.45038594))
0.7951165175
0.83345382
0.5694807024999999
  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

绿洲213

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值