IT TIP

Numpy에서 IQR을 어떻게 찾습니까?

itqueen 2020. 12. 15. 20:36
반응형

Numpy에서 IQR을 어떻게 찾습니까?


사 분위수 범위를 찾기 위해 내장 된 Numpy / Scipy 함수가 있습니까? 나도 쉽게 할 수 있지만 mean()기본적으로 존재하는 sum/len...

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

지금이 iqr함수는 scipy.stats. scipy 0.18.0부터 사용할 수 있습니다. 내 원래 의도는 numpy에 추가하는 것이었지만 너무 도메인에 특정한 것으로 간주되었습니다.

scipy 코드는 지나치게 복잡한 버전이기 때문에 Jaime의 답변을 사용하는 것이 더 나을 수 있습니다.

참조 URL : https://stackoverflow.com/questions/23228244/how-do-you-find-the-iqr-in-numpy

반응형