[英]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.