NumPy布尔数组警告



我有几个numpy数组,比如abc,并创建了一个mask来应用于所有这些数组。

我正试图把它们伪装成这样:

a = a[mask]

其中CCD_ 6是CCD_。值得注意的是,我已经验证了

len(a) = len(b) = len(c) = len(mask)

我收到了一个听起来相当神秘的警告:

FutureWarning: in the future, boolean array-likes will be handled as a boolean array index

False==0,True==1。如果你的面具是一个列表,而不是一个ndarray,你可能会得到一些意想不到的行为:

>>> a = np.array([1,2,3])
>>> mask_list = [True, False, True]
>>> a[mask_list]
__main__:1: FutureWarning: in the future, boolean array-likes will be handled as a boolean array index
array([2, 1, 2])

其中该数组由a[1]、a[0]和a[1]组成,就像一样

>>> a[np.array([1,0,1])]
array([2, 1, 2])

另一方面:

>>> mask_array = np.array(mask_list)
>>> mask_array
array([ True, False,  True], dtype=bool)
>>> a[mask_array]
array([1, 3])

警告告诉您,a[mask_list]最终会给您与a[mask_array]相同的结果(这可能是您最初希望它给您的结果)

最新更新