2016-06-01 5 views
1

python의 변경 점에서 piecewise 함수를 생성하려고합니다. 입력과 출력이 커지므로 속도가 중요합니다.Numpy의 변경 점에서 piecewise 함수 만들기

입력 :

  • INT NumPy와 배열 : A = [1,7, 1000, 1500]
  • 부울 NumPy와 배열 :

    : A의 길이 B

출력에 True의 수와 동일한 B = [True, False, True, True, False, True, False, False]

  • int nu MPY 어레이 : C = [1, 1, 7, 1000, 1000, 1500, 1500, 1500]C의 길이는 본질적 A의 각 요소 B의 다음 True까지 반복된다 B

의 길이와 동일한 경우에 A의 다음 요소를 사용 나타난다.

+0

품질을 높이려면이 [URL] (http://stackoverflow.com/help)을 참조하십시오. –

답변

0
In [1]: import numpy 

In [2]: A = numpy.array([1, 7, 1000, 1500]) 

In [3]: B = numpy.array([True, False, True, True, False, True, False, False]) 

In [4]: A[B.cumsum() - 1] 
Out[4]: array([ 1, 1, 7, 1000, 1000, 1500, 1500, 1500]) 

B.cumsum() - 1는 어떤 요소의 출력의 각 요소에 대해 사용하는 계산하고 A[B.cumsum() - 1] 그 요소를 추출한다. 이렇게하려면 numpy.repeat을 사용하는 방법을 찾아야 할 수도 있습니다.