Python matlab isempty()函数在numpy中?

Python matlab isempty()函数在numpy中?,python,numpy,Python,Numpy,我在matlab中有以下代码: switch 1 case isempty(A) ... 其中A是一个二维数组 如何使用numpy检查二维数组是否为空(只有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]:

我在matlab中有以下代码:

switch 1
    case isempty(A) 
...
其中A是一个二维数组


如何使用numpy检查二维数组是否为空(只有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\u nonzero(A)


您可以将数组
x
与0进行比较,查看是否所有值都为False


np.all(x==0)

谢谢。我认为matlab代码试图用isempty()找出数组是否只包含0。所以我想尺寸不合适。所以我尝试你的第二个:)这是一个相当晚的评论,但我只是想把一些matlab代码翻译成python。在这个问题上有一个错误的假设(至少在目前的matlab运行方式中是这样):
isempty()
没有检查“仅包含零”,而是检查“至少在维度上长度为零”(意思是a没有内容)。因此答案相当于
A.size==0
,如下所示:
In [13]: Y = np.array([[0, 0], [0, 0]])
In [14]: np.count_nonzero(Y)
Out[14]: 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