亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

基于布爾值擴展選擇

基于布爾值擴展選擇

精慕HU 2023-03-08 14:19:39
我有一個信號作為數據幀,可以說:import pandas as pdimport numpy as npsignal = pd.DataFrame(columns=["Signal"], data=np.random.random(100))和一個簡單的面具,如:mask = signal["Signal"] > 0.5我現在想要選擇掩碼為真的信號值,以及圍繞該選擇的 N 值。因此,如果我的掩碼是[False, False, True, False, True, False, False]且 N=1,則選擇應基于類似[False, True, True, True, True, True, False]. 有沒有一種方法可以快速執行此操作而不必遍歷各個行?
查看完整描述

1 回答

?
FFIVE

TA貢獻1797條經驗 獲得超6個贊

您可以使用以下方法選擇周圍的元素shift:


signal[(signal.Signal > 0.5) | (signal.Signal.shift() > 0.5) | (signal.Signal.shift(-1) > 0.5)]

對于隨機數據,部分輸出是:


6   0.526264

7   0.613049

8   0.106939

9   0.917906

10  0.875563

11  0.269236

14  0.231961

15  0.757697

16  0.227037

另一種方法是使用rollingwith center=True。如果在給定的大小為 N 的窗口中(在本例中為 N=3),至少有一項大于閾值 - 計算當前行。


THRESHOLD = 0.5 

signal[signal.Signal.rolling(3, center = True).max() > THRESHOLD]

N=3 表示您正在查看當前行 + 任一側的一行。N=5 表示當前行 + 2,等等。


查看完整回答
反對 回復 2023-03-08
  • 1 回答
  • 0 關注
  • 84 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號