np.percentile和df.quantile这两种分位数计算方法有何本质区别与适用场景?

2026-04-19 22:131阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计991个文字,预计阅读时间需要4分钟。

np.percentile和df.quantile这两种分位数计算方法有何本质区别与适用场景?

:使用 `np.percentile` 和 `pandas.DataFrame.quantile` 计算百分位数

内容:在数据分析中,计算数据的百分位数是常见的操作。`np.percentile` 和 `pandas.DataFrame.quantile` 都是实现这一功能的函数。

`np.percentile`:这是 NumPy 库中的一个函数,用于计算数组中指定百分位的值。其语法为:np.percentile(a, q, axis=None, out=None, overwrite_input=False, interpolation='linear', keepdims=False)其中,`a` 是用于计算百分位数的数组,`q` 是百分位数,`axis` 指定计算轴,`interpolation` 指定插值方法。

`pandas.DataFrame.quantile`:这是 Pandas 库中 DataFrame 对象的一个方法,用于计算 DataFrame 中指定列的百分位数。其语法为:+pandas.DataFrame.quantile+参数:这里直接使用 Pandas 的方法,无需额外参数。

总结:`np.percentile` 和 `pandas.DataFrame.quantile` 都是计算百分位数的有效工具。`np.percentile` 适用于 NumPy 数组,而 `pandas.DataFrame.quantile` 适用于 Pandas DataFrame。

目录
  • np.percentile
    • 参数:
  • pandas.DataFrame.quantile
    • 参数:
    • 返回
  • 总结

    np.percentile

    numpy.percentile(a, q, axis=None, out=None, overwrite_input=False, interpolation='linear', keepdims=False)

    参数:

    • a : array,用来算分位数的对象,可以是多维的数组
    • q : array_like of float,介于0-100的float,用来计算是几分位的参数,如四分之一位就是25,如要算两个位置的数就(25,75)
    • axis : 坐标轴的方向,一维的就不用考虑了,多维的就用这个调整计算的维度方向,取值范围0/1,默认值为沿着数组的展平版本计算百分位数
    • out : 输出数据的存放对象,参数要与预期输出有相同的形状和缓冲区长度
    • overwrite_input : bool,默认False,为True时及计算直接在数组内存计算,计算后原数组无法保存
    • interpolation : 取值范围{'linear', 'lower', 'higher', 'midpoint', 'nearest'}
    • 默认liner,比如取中位数,但是中位数有两个数字6和7,选不同参数来调整输出
    • keepdims : bool,默认False,为真时取中位数的那个轴将保留在结果中

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

    pandas.DataFrame.quantile

    DataFrame.quantile(q=0.5, axis=0, numeric_only=True, interpolation='linear')

    • q:float or array-like, default 0.5 (50%quantile),0 <= q <= 1之间的值,即要计算的分位数
    • axis:{0, 1, ‘index’, ‘columns’},default 0,对于行,等于0或“索引”,对于列,等于1或“列”
    • numeric_only:bool, default True,如果为False,则还将计算日期时间和时间增量数据的分位数
    • interpolation:{‘linear’, ‘lower’, ‘higher’, ‘midpoint’, ‘nearest’},当所需分位数位于两个数据点i和j之间时,此可选参数指定要使用的插值方法

    返回

    Series or DataFrame

    np.percentile和df.quantile这两种分位数计算方法有何本质区别与适用场景?

    • 如果q是数组,则将返回DataFrame,其中index为q,列为self的列,值为分位数。
    • 如果q为float,则在index是self的列,值是分位数

    df = pd.DataFrame(np.array([[1, 1], [2, 10], [3, 100], [4, 100]]), columns=['a', 'b'])

    df.quantile(.1) ''' a 1.3 b 3.7 Name: 0.1, dtype: float64 ''' df.quantile([.1, .5]) ''' a b 0.1 1.3 3.7 0.5 2.5 55.0 '''

    总结

    到此这篇关于Python中np.percentile和df.quantile分位数详解的文章就介绍到这了,更多相关np.percentile和df.quantile分位数内容请搜索自由互联以前的文章或继续浏览下面的相关文章希望大家以后多多支持自由互联!

    本文共计991个文字,预计阅读时间需要4分钟。

    np.percentile和df.quantile这两种分位数计算方法有何本质区别与适用场景?

    :使用 `np.percentile` 和 `pandas.DataFrame.quantile` 计算百分位数

    内容:在数据分析中,计算数据的百分位数是常见的操作。`np.percentile` 和 `pandas.DataFrame.quantile` 都是实现这一功能的函数。

    `np.percentile`:这是 NumPy 库中的一个函数,用于计算数组中指定百分位的值。其语法为:np.percentile(a, q, axis=None, out=None, overwrite_input=False, interpolation='linear', keepdims=False)其中,`a` 是用于计算百分位数的数组,`q` 是百分位数,`axis` 指定计算轴,`interpolation` 指定插值方法。

    `pandas.DataFrame.quantile`:这是 Pandas 库中 DataFrame 对象的一个方法,用于计算 DataFrame 中指定列的百分位数。其语法为:+pandas.DataFrame.quantile+参数:这里直接使用 Pandas 的方法,无需额外参数。

    总结:`np.percentile` 和 `pandas.DataFrame.quantile` 都是计算百分位数的有效工具。`np.percentile` 适用于 NumPy 数组,而 `pandas.DataFrame.quantile` 适用于 Pandas DataFrame。

    目录
    • np.percentile
      • 参数:
    • pandas.DataFrame.quantile
      • 参数:
      • 返回
    • 总结

      np.percentile

      numpy.percentile(a, q, axis=None, out=None, overwrite_input=False, interpolation='linear', keepdims=False)

      参数:

      • a : array,用来算分位数的对象,可以是多维的数组
      • q : array_like of float,介于0-100的float,用来计算是几分位的参数,如四分之一位就是25,如要算两个位置的数就(25,75)
      • axis : 坐标轴的方向,一维的就不用考虑了,多维的就用这个调整计算的维度方向,取值范围0/1,默认值为沿着数组的展平版本计算百分位数
      • out : 输出数据的存放对象,参数要与预期输出有相同的形状和缓冲区长度
      • overwrite_input : bool,默认False,为True时及计算直接在数组内存计算,计算后原数组无法保存
      • interpolation : 取值范围{'linear', 'lower', 'higher', 'midpoint', 'nearest'}
      • 默认liner,比如取中位数,但是中位数有两个数字6和7,选不同参数来调整输出
      • keepdims : bool,默认False,为真时取中位数的那个轴将保留在结果中

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

      pandas.DataFrame.quantile

      DataFrame.quantile(q=0.5, axis=0, numeric_only=True, interpolation='linear')

      • q:float or array-like, default 0.5 (50%quantile),0 <= q <= 1之间的值,即要计算的分位数
      • axis:{0, 1, ‘index’, ‘columns’},default 0,对于行,等于0或“索引”,对于列,等于1或“列”
      • numeric_only:bool, default True,如果为False,则还将计算日期时间和时间增量数据的分位数
      • interpolation:{‘linear’, ‘lower’, ‘higher’, ‘midpoint’, ‘nearest’},当所需分位数位于两个数据点i和j之间时,此可选参数指定要使用的插值方法

      返回

      Series or DataFrame

      np.percentile和df.quantile这两种分位数计算方法有何本质区别与适用场景?

      • 如果q是数组,则将返回DataFrame,其中index为q,列为self的列,值为分位数。
      • 如果q为float,则在index是self的列,值是分位数

      df = pd.DataFrame(np.array([[1, 1], [2, 10], [3, 100], [4, 100]]), columns=['a', 'b'])

      df.quantile(.1) ''' a 1.3 b 3.7 Name: 0.1, dtype: float64 ''' df.quantile([.1, .5]) ''' a b 0.1 1.3 3.7 0.5 2.5 55.0 '''

      总结

      到此这篇关于Python中np.percentile和df.quantile分位数详解的文章就介绍到这了,更多相关np.percentile和df.quantile分位数内容请搜索自由互联以前的文章或继续浏览下面的相关文章希望大家以后多多支持自由互联!