检查元组内部的数组在Python中是否为空

时间:2019-06-13 13:14:31

标签: python

在我的代码中有一行,它会在numpy.ndarray类型中查找设置为1的值:

neg_samples = np.where(Y1[0, :, -1] == 1)

,它使用print(neg_samples)这样的元组返回:

(array([ 0, 1, 2]),)

但有时数组为空,结果如下:

(array([], dtype=int64),)

我需要检查此数组是否为空。我尝试过:

   if len(neg_samples) > 0:
       neg_samples = neg_samples[0]
   else:
       neg_samples = []

但是每次,每次都继续,所以我决定检查这个neg_samples的长度,看起来每次,无论是(array([], dtype=int64),)还是(array([ 0, 1, 2(...), 199, 200]),),它总是{{ 1}}。

使用len(neg_samples)=1引发

if not all(neg_samples):

我认为问题在于数组在元组内部。如何检查该元组中的该数组是否为空?

1 个答案:

答案 0 :(得分:1)

In [54]: a = (array.array('d', []),)

In [55]: len(a)
Out[55]: 1

In [56]: len(a[0])
Out[56]: 0

检查镜头,然后再继续