gpt4 book ai didi

python - numpy.percentile 是什么意思以及如何使用它来拆分数组?

转载 作者:太空宇宙 更新时间:2023-11-04 00:38:29 24 4
gpt4 key购买 nike

我正在尝试理解 numpy 中的百分位数。

import numpy as np
nd_array = np.array([3.6216, 4.5459, -3.5637, -2.5419])
step_intervals = range(100, 0, -5)

for percentile_interval in step_intervals:
threshold_attr_value = np.percentile(np.array(nd_array), percentile_interval)
print "percentile interval ={interval}, threshold_attr_value = {threshold_attr_value}, {arr}".format(interval=percentile_interval, threshold_attr_value=threshold_attr_value, arr=sorted(nd_array))

我得到这些的值是

percentile interval =100, threshold_attr_value = 4.5459, [-3.5636999999999999, -2.5419, 3.6215999999999999, 4.5458999999999996]

...

percentile interval =5, threshold_attr_value = -3.41043, [-3.5636999999999999, -2.5419, 3.6215999999999999, 4.5458999999999996]

百分位数值是什么意思?

  • 数组中 100% 的值是 < 4.5459?
  • 数组中 5% 的值是 < -3.41043?

这是正确的阅读方式吗?

我想将 numpy 数组拆分成小的子数组。我想根据元素的百分位出现次数来做。我该怎么做?

最佳答案

更准确地说,你应该说 a = np.percentile(arr, q) 表示 nearly q% 的元素arr 低于 a。为什么我要强调几乎

  • 如果 q=100,它总是返回 arr 的最大值。因此,您不能说 q% 的元素“低于”a
  • 如果q=0,它总是返回arr 的最小值。因此,您不能说 q% 的元素“低于或等于”a
  • 此外,返回值取决于插值的类型。

下面的代码展示了插值参数的作用:

>>> import numpy as np
>>> arr = np.array([1,2,3,4,5])
>>> np.percentile(arr, 90) # default interpolation='linear'
4.5999999999999996
>>> np.percentile(arr, 90, interpolation='lower')
4
>>> np.percentile(arr, 90, interpolation='higher')
5

关于python - numpy.percentile 是什么意思以及如何使用它来拆分数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42883747/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com