📅  最后修改于: 2023-12-03 14:46:37.912000             🧑  作者: Mango
IQR (Interquartile Range) 是一种用于统计数据分散性的一种度量方式。在 Python 中,可以使用 numpy 库中的 iqr 函数计算数据的 IQR 值。
numpy.iqr 函数用于计算给定数据的 Interquartile Range。
numpy.iqr(a, axis=None, out=None, keepdims=<no value>, interpolation='linear')
a
:需要计算的数据axis
:需要计算的轴,默认为 None
表示将整个数据作为一个数组计算 IQR 值out
:计算结果的输出变量keepdims
:是否保留计算维度信息,默认为 <no value>
,表示不保留。设置为 True
表示保留计算维度信息。interpolation
:计算时使用的插值算法,可选值为 linear
和 lower
。numpy.iqr
函数返回给定数据的 IQR 值。
import numpy as np
a = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9])
iqr1 = np.iqr(a)
iqr2 = np.iqr(a, axis=0)
iqr3 = np.iqr(a, axis=None, keepdims=True)
print("a:", a)
print("IQR1:", iqr1)
print("IQR2:", iqr2)
print("IQR3:", iqr3)
执行上述代码后,输出结果如下:
a: [1 2 3 4 5 6 7 8 9]
IQR1: 4.0
IQR2: 4.0
IQR3: [4.]
在计算 IQR 时,可以使用 interpolation
参数指定插值算法。插值算法有两种,分别为 linear
和 lower
。
linear
:使用线性插值算法计算 IQR 值。lower
:使用下四分位数计算 IQR 值。默认值为 linear
。
import numpy as np
a = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9])
iqr1 = np.iqr(a, interpolation='linear')
iqr2 = np.iqr(a, interpolation='lower')
print("IQR1:", iqr1)
print("IQR2:", iqr2)
执行上述代码后,输出结果如下:
IQR1: 4.0
IQR2: 4