[英]How to check if elements of a vector lies between two vectors in Numpy?
假設A
和B
被賦予向量,目的是檢查Y
哪些元素位於 A 和 B 之間。例如:
A=np.array([1,2,3,4])
B=np.array([10,20,30,40])
Y=np.array([8,15,0,50])
預期輸出應如下所示: [1,1,0,0]
其中元素不是 bool 類型,因此我可以使用np.sum()
找出真實值的數量
您可以進行比較並進行元素and
(A < Y) & (Y < B)
無論它們是布爾值, np.sum()
都可以工作。 如有疑問,只需使用 int 強制轉換
X.astype(int)
就這么簡單
np.logical_and(A <= Y, Y <= B).astype(int)
但是你也可以對一個邏輯向量求和,numpy 將處理引擎蓋下的轉換。
In [1]: np.sum(np.logical_and(A <= Y, Y <= B).astype(int)) == np.sum(np.logical_and(A <= Y, Y <= B))
Out[1]: True
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.