본문 바로가기
파이썬

파이썬 NumPy로 누적 분포 함수를 얻는 방법은 무엇입니까?

by º기록 2021. 2. 17.
반응형

NumPy로 CDF를 만들고 싶습니다. 내 코드는 다음과 같습니다.

histo = np.zeros(4096, dtype = np.int32)
for x in range(0, width):
   for y in range(0, height):
      histo[data[x][y]] += 1
      q = 0 
   cdf = list()
   for i in histo:
      q = q + i
      cdf.append(q)

나는 배열을 걷고 있지만 프로그램 실행에 오랜 시간이 걸립니다. 이 기능에 내장 된 기능이 있지 않습니까?

 

해결 방법

 

코드가 무엇을하는지 잘 모르겠지만 numpy.histogram 에서 반환 한 hist bin_edges 배열이있는 경우 < code> numpy.cumsum 을 사용하여 히스토그램 콘텐츠의 누적 합계를 생성합니다.

>>> import numpy as np
>>> hist, bin_edges = np.histogram(np.random.randint(0,10,100), normed=True)
>>> bin_edges
array([ 0. ,  0.9,  1.8,  2.7,  3.6,  4.5,  5.4,  6.3,  7.2,  8.1,  9. ])
>>> hist
array([ 0.14444444,  0.11111111,  0.11111111,  0.1       ,  0.1       ,
        0.14444444,  0.14444444,  0.08888889,  0.03333333,  0.13333333])
>>> np.cumsum(hist)
array([ 0.14444444,  0.25555556,  0.36666667,  0.46666667,  0.56666667,
        0.71111111,  0.85555556,  0.94444444,  0.97777778,  1.11111111])

 

참조 페이지 https://stackoverflow.com/questions/10640759

 

 

반응형

댓글