我在Matlab中有这段代码:
switch 1
case isempty(A)
...
在numpy中如何检查二维数组A是否为空(只有0值)?
要检查一个数组是否为空(即不包含任何元素),您可以使用 A.size == 0
:
import numpy as np
In [2]: A = np.array([[1, 2], [3, 4]])
In [3]: A.size
Out[3]: 4
In [4]: B = np.array([[], []])
In [5]: B.size
Out[5]: 0
为了检查它是否只包含0,您可以检查np.count_nonzero(A)
:
In [13]: Y = np.array([[0, 0], [0, 0]])
In [14]: np.count_nonzero(Y)
Out[14]: 0
您可以将数组x
与0进行比较,看所有值是否都为False。
np.all(x==0)
>>> empty_array = np.zeros((3,3))
>>> empty_array
array([[ 0., 0., 0.],
[ 0., 0., 0.],
[ 0., 0., 0.]])
>>> if np.all(empty_array==0): print True
...
True
>>> empty_array[1][1]=1
>>> empty_array
array([[ 0., 0., 0.],
[ 0., 1., 0.],
[ 0., 0., 0.]])
>>> if np.all(empty_array==0):
... print True
... else:
... print False
...
False
isempty()
并不检查“仅包含零”,而是检查“至少一个维度的长度为零”(),意味着A没有内容。因此,答案应该是A.size == 0
,如此处所述:https://dev59.com/HWgu5IYBdhLWcg3we3Ct - NicoH