是否有烘焙Numpy/Scipy函數來查找四分位間距?我能做到這一點很容易地自己,但mean()
存在這基本上是sum/len
...你如何在Numpy中找到IQR?
def IQR(dist):
return np.percentile(dist, 75) - np.percentile(dist, 25)
是否有烘焙Numpy/Scipy函數來查找四分位間距?我能做到這一點很容易地自己,但mean()
存在這基本上是sum/len
...你如何在Numpy中找到IQR?
def IQR(dist):
return np.percentile(dist, 75) - np.percentile(dist, 25)
np.percentile
需要多個百分點參數,你稍微更好做:
q75, q25 = np.percentile(x, [75 ,25])
iqr = q75 - q25
或
iqr = np.subtract(*np.percentile(x, [75, 25]))
比打兩個電話percentile
:
In [8]: x = np.random.rand(1e6)
In [9]: %timeit q75, q25 = np.percentile(x, [75 ,25]); iqr = q75 - q25
10 loops, best of 3: 24.2 ms per loop
In [10]: %timeit iqr = np.subtract(*np.percentile(x, [75, 25]))
10 loops, best of 3: 24.2 ms per loop
In [11]: %timeit iqr = np.percentile(x, 75) - np.percentile(x, 25)
10 loops, best of 3: 33.7 ms per loop
scipy.stats
現在有iqr
函數。它可用於scipy 0.18.0。我最初的意圖是將其添加到numpy中,但它被認爲太特定於域。
只是使用Jaime的答案,因爲scipy代碼只是一個過於複雜的版本。
爲什麼IQR會被認爲是針對numpy特定領域的? –
因爲它不是一個廣泛使用的指標。請隨時搜索郵件列表以瞭解詳細信息。 –
我不認爲它有一個功能,你必須像你一樣計算百分位數。 – BrenBarn
@BrenBarn。現在有... –