Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Pandas TI nspire python计算中的不同Q1和Q3值_Pandas_Numpy_Ti Nspire_Iqr - Fatal编程技术网

Pandas TI nspire python计算中的不同Q1和Q3值

Pandas TI nspire python计算中的不同Q1和Q3值,pandas,numpy,ti-nspire,iqr,Pandas,Numpy,Ti Nspire,Iqr,我使用Numpy/Pandas和TI nspire计算了上四分位(Q3或75%瓷砖)和下四分位(Q1或25%瓷砖)。但我有不同的价值观。为什么会发生这种情况 从(5+8)/2=6.5和(18+21)/2=19.5,Numpy/Q1和Q3是错误的。为什么Numpy/Pandas返回错误的号码 import numpy as np data=np.array([2,4,5,8,10,11,12,14,17,18,21,22,25]) q75, q25 = np.percentile(data,

我使用Numpy/Pandas和TI nspire计算了上四分位(Q3或75%瓷砖)和下四分位(Q1或25%瓷砖)。但我有不同的价值观。为什么会发生这种情况

从(5+8)/2=6.5和(18+21)/2=19.5,Numpy/Q1和Q3是错误的。为什么Numpy/Pandas返回错误的号码

import numpy as np

data=np.array([2,4,5,8,10,11,12,14,17,18,21,22,25])

q75, q25 = np.percentile(data, [75 ,25])
print(q75,q25)


df=pd.DataFrame(data)
df.describe()
Numpy返回18.0和8.0。 熊猫返回18.0和8.0。 但TI nspire返回19.5和6.5

这个和这个帮助我理解了它

所以如果你有[7,15,36,39,40,41],那么7->0%,15->20%,36->40%,39->60%,40->80%,41->100%

插值的默认值为线性。所以它使用i+(j-i)*分数。可以将插值设置为计算(i+j)/2的中点

输出:


所以我发现在熊猫/Numpy中找不到确切的Q1和Q3作为TI-nspire。

你正在享受。他们都是对的

与大多数其他描述符不同,Q1和Q3有几种不同的定义。对于具有大量观测值的数据集,不同的定义将给出大致相同的结果。对于小型数据集,您将看到不同之处—正如您所经历的那样

Mathword列出了5(5!)种计算四分位数的不同方法。 请参见

可能的帮助
import numpy as np

data=np.array([7,15,36,39,40,41])
linear = np.percentile(data, [25, 50, 75], interpolation='linear')
mid = np.percentile(data, [25, 50, 75], interpolation='midpoint')
low = np.percentile(data, [25, 50, 75], interpolation='lower')
high = np.percentile(data, [25, 50, 75], interpolation='higher')
nearest = np.percentile(data, [25, 50, 75], interpolation='nearest')
print(linear,mid,low,high,nearest)
print(15,37.5,40)