簡體   English   中英

從Numpy中的變換點構造分段函數

[英]Constructing piecewise function from changepoints in Numpy

我想從python中的變換點構造一個分段函數。 我希望我的輸入和輸出很大,所以速度很重要。

輸入:

  • int numpy數組: A = [1,7, 1000, 1500]
  • bool numpy array: B = [True, False, True, True, False, True, False, False]其中A的長度等於BTrue

輸出:

  • int numpy array: 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM