我有兩個一維numpy排序的陣列,A和B。
abs(a-b) <= 10
并且只保留符合條件的元素。 有什么方法可以不通過回圈來實作嗎?
陣列的長度不一定相同,而且B中最接近A的元素的idx可能與A中的原始idx相差甚遠。
A[(A >= B - 10) & (A <= B 10)]
我不介意使用大量的空間,所以我可以創建2個大小為B[-1]的新陣列,并使用A,B中的元素作為新陣列中存在1的索引,但我也想不出這樣沒有回圈的解決方案。我想過使用 np.lib.stride_tricks.as_strided,但不確定如何使用。
謝謝你。
uj5u.com熱心網友回復:
這樣做應該可以:
answer = a[np.sum(abs(a. reshape(a.shape[0], 1) - b) <= 10,axis=-1) > 0 ]
uj5u.com熱心網友回復:
你可以使用np.isclose來廣播B
A[np.isclose(A, B[:, None], atol=10]。 any(0)] 。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/326880.html
標籤:
