[英]Constructing piecewise function from changepoints in Numpy
我想從python中的變換點構造一個分段函數。 我希望我的輸入和輸出很大,所以速度很重要。
輸入:
A = [1,7, 1000, 1500]
B = [True, False, True, True, False, True, False, False]
其中A
的長度等於B
的True
數 輸出:
C = [1, 1, 7, 1000, 1000, 1500, 1500, 1500]
1,1,7,1000,1000,1500,1500,1500 C = [1, 1, 7, 1000, 1000, 1500, 1500, 1500]
其中C
的長度與B
的長度相同 基本上, A
每個元素都會重復,直到B
中的下一個True
出現,在這種情況下,使用A
的下一個元素。
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的哪個元素用於輸出的每個元素,然后A[B.cumsum() - 1]
提取這些元素。 您可能還可以嘗試使用numpy.repeat
來執行此操作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.