这是我参与11月更文挑战的第24天,活动详情查看:2021最后一次更文挑战
在数据处理中,Numpy提供了非常多的方法供我们快速便捷的判断数据值的情况,例如:
- isfinite判断元组元素是否是有穷,是有穷则返回True
- isinf判断元素是否是正无穷或负无穷
- isnan判断元素是否为Not a Number
- isnat判断元素是否Not a Time
- isneginf判断元素是否为负无穷大
- isposinf判断元素是否为正无穷大
Numpy数组元素判断:
主要围绕正负无穷大和缺失值进行判断。
下面的例子使用numpy.isfinite进行判断元组元素是否是有穷,是有穷则返回True
下面几种情况都是被认为是无穷的:
- numpy.nan
- numpy.inf
- numpy.NINF
除了上面的几种情况,numpy.isfinite均返回True
In [1]: import numpy as np
isfinite判断元组元素是否是有穷,是有穷则返回True
In [2]: np.isfinite(1)
Out[2]: True
In [3]: np.isfinite(np.nan)
Out[3]: False
下面的例子使用isinf判断元素是否是正无穷或负无穷,正负无穷则返回True
下面几种情况都是返回True:
- numpy.inf
- numpy.NINF
除了上面的几种情况,np.isinf均返回False, 包括numpy.nan
isinf判断元素是否是正无穷或负无穷
In [7]: np.isinf(np.nan)
Out[7]: False
In [8]: np.isinf(np.inf)
Out[8]: True
下面的例子使用np.isnan判断元素是否Not a Number
下面几种情况都是返回False:
- numpy.inf
除了上面的几种情况,np.isnan均返回True, 包括numpy.nan
isnan判断元素是否为Not a Number
In [11]: np.isnan(np.nan)
Out[11]: True
In [12]: np.isnan(np.inf)
Out[12]: False
In [13]: np.isnan(2)
Out[13]: False
下面的例子使用np.isnat判断元素是否Not a Time
下面几种情况都是返回True:
- np.isnat(np.datetime64("NaT"))
除了上面的几种情况,np.isnat均返回True
isnat判断元素是否Not a Time
In [14]: np.isnat(np.datetime64("NaT"))
Out[14]: True
In [16]: np.isnat(np.datetime64("2021-11-25"))
Out[16]: False
下面的例子使用isneginf判断元素是否为负无穷大
下面几种情况都是返回False:
- np.isneginf(np.inf)
除了上面的情况,isneginf只有np.isneginf(np.NINF)返回True
isneginf判断元素是否为负无穷大
In [17]: np.isneginf(np.NINF)
Out[17]: True
In [18]: np.isneginf(np.inf)
Out[18]: False
下面的例子使用np.isposinf判断元素是否为正无穷大 下面几种情况都是返回False:
- np.isposinf(np.NINF)
除了上面的情况,np.isposinf只有np.isposinf(np.inf)返回True
isposinf判断元素是否为正无穷大
In [19]: np.isposinf(np.inf)
Out[19]: True
In [20]: np.isposinf(np.NINF)
Out[20]: False
Numpy也提供了丰富的逻辑判断方法供我们快速便捷的判断数据值的情况:
- logical_and: and的逻辑判断
- logical_or: 逻辑或
Numpy逻辑判断:
下面的例子使用numpy.logical_and进行与的逻辑运算:
np.logical_and:应用于第一个元素和第二个元素的逻辑与运算的布尔结果
logical_and: and的逻辑判断。当两个都为True时,才返回True,否则返回False
In [21]: np.logical_and(True, True)
Out[21]: True
当logical_and处理的是两个数组时,将会按照对应相同位置的元素进行与运算,返回布尔数组:
& 是logical_and的另一种简短的写法
In [22]: np.logical_and([1, 0], [1, 0])
Out[22]: array([ True, False])
下面的例子使用numpy.logical_or进行逻辑或的逻辑运算:
np.logical_or:应用于第一个元素和第二个元素的逻辑或运算的布尔结果
logical_or: or的逻辑判断。当其中一个都为True时,返回True;当所有都为False时,返回False logical_or: 逻辑或
In [31]: np.logical_or(True, False)
Out[31]: True
In [32]: np.logical_or(False, False)
Out[32]: False