栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

numpy.pencentile官方doc解析

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

numpy.pencentile官方doc解析

numpy.pencentile
  • 定义
    • 解析参数
    • 例子
    • 插值方法可视化

定义

numpy.percentile(a, q, axis=None, out=None, overwrite_input=False, interpolation=‘linear’, keepdims=False)
沿指定轴计算数据的第 q 个百分位数。
返回数组元素的第 q 个百分位数。

解析参数

a :类型 array_like 输入数组或可转换为数组的对象
q: array_like of float 要计算的百分位数或百分位数序列,必须介于 0 和 100 之间(包括 0 和 100)。
axis: {int, tuple of int, None} 可选 计算百分位数的轴。 默认值是沿着数组的扁平版本计算百分位数。
out: ndarray 可选 用于放置结果的可替代的输出数组。 它必须具有与预期输出相同的形状和缓冲区长度,但如有必要,将转换(输出的)类型。
overwrite_input: 布尔值 可选 如果为 True,则允许通过中间计算修改输入数组 a,以节省内存。 在这种情况下,此函数完成后输入 a 的内容是未定义的。
interpolation:{‘linear’, ‘lower’, ‘higher’, ‘midpoint’, ‘nearest’}
此可选参数指定当所需百分位数位于两个数据点 i < j 之间时使用的插值方法
liear:i + (j - i) * fraction 其中分数(fraction)是由 i 和 j 包围的索引的小数部分
lower:i
higher: j
midpoint:(i+j)/2
nearest :i或者j,近的那一个
keepdim:布尔值 可选
如果将其设置为 True,则减少的轴将作为尺寸为 1 的维度保留在结果中。 使用此选项,结果将针对原始数组 a 正确广播。
返回值 percentile 标量 或者 ndarray
如果 q 是单个百分位数且axis = None,则结果为标量。 如果给出多个百分位数,则结果的第一个轴对应于百分位数。 其他轴是 a 减少后剩余的轴。 如果输入包含小于 float64 的整数或浮点数,则输出数据类型为 float64。 否则,输出数据类型与输入相同。 如果指定了 out,则返回该数组。

例子

a = np.array([[10, 7, 4], [3, 2, 1]])
a
array([[10, 7, 4],
[ 3, 2, 1]])
np.percentile(a, 50)
3.5
//3.5 = (4+3)/2
np.percentile(a, 50, axis=0)
array([6.5, 4.5, 2.5])
//6.5 = (10+3)/2, 4.5=(7+2)/2 2.5=(4+1)/2
np.percentile(a, 50, axis=1)
array([7., 2.])
np.percentile(a, 50, axis=1, keepdims=True)
array([[7.],
[2.]])

m = np.percentile(a, 50, axis=0)
out = np.zeros_like(m)
np.percentile(a, 50, axis=0, out=out)
array([6.5, 4.5, 2.5])
m
array([6.5, 4.5, 2.5])

b = a.copy()
np.percentile(b, 50, axis=1, overwrite_input=True)
array([7., 2.])
assert not np.all(a == b)

插值方法可视化

不同类型的插值可以以图形方式显示:
a = np.arange(4)
p = np.linspace(0, 100, 6001)
ax = plt.gca()
lines = [
(‘linear’, None),
(‘higher’, ‘–’),
(‘lower’, ‘–’),
(‘nearest’, ‘-.’),
(‘midpoint’, ‘-.’),
]
for interpolation, style in lines:
ax.plot(
p, np.percentile(a, p, interpolation=interpolation),
label=interpolation, linestyle=style)
ax.set(
title='Interpolation methods for list: ’ + str(a),
xlabel=‘Percentile’,
ylabel=‘List item returned’,
yticks=a)
ax.legend()
plt.show()

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/619024.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号