Python 如何做numpy逻辑_和一个空白?

Python 如何做numpy逻辑_和一个空白?,python,numpy,multidimensional-array,vector,data-science,Python,Numpy,Multidimensional Array,Vector,Data Science,我有两个numpy向量数组,一个包含二进制值,可以是1或0,另一个是浮点值,可以是0到1之间的任何值 我想使用numpy.logical_和运算符,如果二进制值在浮点加上或减去0.2的范围内,则返回true。因此,即0.1的浮点值将返回true,0.4 false 我该如何解决这个问题?我想你想要的是np.isclose。在这种情况下,实施将是: bin_arr = np.random.randint(2, size = 100) float_arr = np.random.rand(100)

我有两个numpy向量数组,一个包含二进制值,可以是1或0,另一个是浮点值,可以是0到1之间的任何值

我想使用
numpy.logical_和
运算符,如果二进制值在浮点加上或减去0.2的范围内,则返回true。因此,即0.1的浮点值将返回true,0.4 false


我该如何解决这个问题?

我想你想要的是
np.isclose
。在这种情况下,实施将是:

bin_arr = np.random.randint(2, size = 100)
float_arr = np.random.rand(100)
out = np.isclose(bin_arr.astype(float), float_arr, atol = .2)

请注意,虽然
logical\u和
是具有扩展功能的,但
np.isclose
不是。

如果(float\u arr小于0.2)和(bin\u arr>0),则问题是否需要
为True
。这确实需要使用逻辑and

或者,如果abs(浮点数-bin\u arr)为0,`,则为
True


np.logical\u和(float\u数组您是否计划使用
logical\u和
ufunc
功能(即
logical\u和.acculate()
.reduce()
.at()
)?或者仅仅是基本功能?我没有计划这么做,是吗?可能没有,但我想确保,因为内置的
numpy
函数(
np.isclose
)不是
ufunc
,不能做
逻辑和
可以做的额外事情。
# Set up some data
np.random.seed(0)  # Make it repeatable.
bin_arr = np.random.randint(2, size = 20)
float_arr = np.random.rand(20) 
bin_arr, float_arr

# (array([0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1]),
# array([0.79172504, 0.52889492, 0.56804456, 0.92559664, 0.07103606,
#        0.0871293 , 0.0202184 , 0.83261985, 0.77815675, 0.87001215,
#        0.97861834, 0.79915856, 0.46147936, 0.78052918, 0.11827443,
#        0.63992102, 0.14335329, 0.94466892, 0.52184832, 0.41466194]))
np.logical_and( float_arr<=0.2, bin_arr)
# array([False, False, False, False,  True,  True,  True, False, False,
#        False, False, False, False, False, False, False, False, False,
#        False, False])
np.abs(float_arr - bin_arr)<=0.2
# array([False, False, False, False, False, False, False,  True, False,
#        True,  True, False, False, False,  True, False,  True, False,
#        False, False])