[英]numpy invert stride selection
考慮以下代碼:
aa = np.arange(16)
step = 4
bb = aa[::4]
這將選擇每 4 個元素。 是否有快速簡便的 numpy 函數來選擇bb
的補碼? 我正在尋找以下輸出
array([1, 2, 3, 5, 6, 7, 9, 10, 11, 13, 14, 15])
是的,我可以生成索引然后執行np.setdiff1d
,但我正在尋找比這更優雅的東西。
如果您正在尋找簡單的單線:
np.delete(aa,slice(None,None,4))
另一個解決方案(我不知道優雅),但你可以定義一個選擇索引,然后將每四個元素設置為 False 以索引原始數組:
o = np.ones_like(s,dtype=bool)
o[::step] = False
aa[o]
基於任意重復位置進行選擇的靈活方法是使用模數:
bb = aa[np.arange(len(aa))%step != step-1]
輸出:
array([ 0, 1, 2, 4, 5, 6, 8, 9, 10, 12, 13, 14])
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.