Python数据分析系列之Numpy基础知识第四篇

225 阅读3分钟

这是我参与11月更文挑战的第24天,活动详情查看:2021最后一次更文挑战

在数据处理中,Numpy提供了非常多的方法供我们快速便捷的判断数据值的情况,例如:

  1. isfinite判断元组元素是否是有穷,是有穷则返回True
  2. isinf判断元素是否是正无穷或负无穷
  3. isnan判断元素是否为Not a Number
  4. isnat判断元素是否Not a Time
  5. isneginf判断元素是否为负无穷大
  6. isposinf判断元素是否为正无穷大

Numpy数组元素判断:
主要围绕正负无穷大和缺失值进行判断。

下面的例子使用numpy.isfinite进行判断元组元素是否是有穷,是有穷则返回True
下面几种情况都是被认为是无穷的:

  1. numpy.nan
  2. numpy.inf
  3. 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:

  1. numpy.inf
  2. 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:

  1. 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:

  1. 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:

  1. 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:

  1. 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也提供了丰富的逻辑判断方法供我们快速便捷的判断数据值的情况:

  1. logical_and: and的逻辑判断
  2. 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