Python matlab isempty()函数在numpy中?
我在matlab中有以下代码: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]:
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