python自带的和numpy带的all(),any() 来判断各空矩阵和零矩阵 None,以及shape

本质上讲,any()实现了或(OR)运算,而all()实现了与(AND)运算。

any(iterables)和all(iterables)对于检查两个对象相等时非常实用,但是要注意,any和all是python内置函数,同时numpy也有自己实现的any和all,功能与python内置的一样,只不过把numpy.ndarray类型加进去了。因为python内置的对高于1维的ndarray没法理解,所以numpy基于的计算最好用numpy自己实现的any和all


参考:https://blog.csdn.net/cython22/article/details/78829288

先用的对空矩阵处理:

>>> import numpy as np
>>> a=np.array([])
>>> any(a)
False
>>> all(a)
True
>>> np.any(a)
False
>>> np.all(a)
True

多种情况的零矩阵处理:

>>> b=np.array([0])
>>> any(b)
False
>>> all(b)
False
>>> np.any(b)
False
>>> np.all(b)
False
>>> c=np.array([[0,0]])
>>> any(c)
Traceback (most recent call last):
  File "", line 1, in 
ValueError: The truth value of an array with more than one element is ambiguous.
 Use a.any() or a.all()
>>> c.any()
False
>>> c.all()
False
>>> np.any(c)
False
>>> np.all(c)
False

关于None返回:

>>> a==None
array([], dtype=bool)

>>> b==None
array([False])

>>> c==None
array([[False, False]])

关于shape返回用来判断最靠谱。

你可能感兴趣的:(python函数解释)