假設您有一些 1d-numpy 陣列,例如
arr = np.array([0,0,0.2,0.6,1,1,0.7,0.3,0,0])
這里 if 將是fn(arr, arr > 0.5) => [(3,6)]<- inverval 的索引,其中值是 biggen 然后給定值。每行也可以有多個間隔,因此輸出[(3,6),[300,302]...] 也是可能的。
是否可以執行單行或任何簡短的書面和最佳 Numpy 操作來獲取具有特定條件的區間索引?
uj5u.com熱心網友回復:
嘗試:
arr = np.array([0, 0, 0.2, 0.6, 1, 1, 0.7, 0.3, 0, 0])
ranges = np.where(np.diff(arr > 0.5, prepend=0, append=0))[0].reshape(-1, 2)
ranges[:, 1] -= 1
print(ranges)
印刷:
[[3 6]]
為了:
arr = np.array([0.6, 0.7, 0, 0, 0.8, 0.9])
印刷:
[[0 1]
[4 5]]
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/477418.html
下一篇:正則運算式將檔案路徑分成組?
