空值 numpy.nan
用 nan 或 NaN 或 NAN 代表空值。
np.nan = np.NaN = np.NAN
注意:
没有 np.Nan (错误写法)
错误信息:
AttributeError: module 'numpy' has no attribute 'Nan'
表示
- 两个 numpy.nan 是不相等的
代码实战:
import numpy as np
print(np.nan == np.nan)
运行结果:
False
- 如何判断某组数据中的元素是空值?
用 **numpy.isnan(x, *args, kwargs)
作用说明:
Test element-wise for NaN and return result as a boolean array
(检测元素是否为空值,并且返回布尔类型的结果)
代码实战1:
import numpy as np
a = np.array([1, 0, 3, 4, 5]) # 数值类型数据
a1 = np.array([1, 0, 3, np.nan, 5])
print(np.isnan(a))
print(np.isnan(a1))
运行结果:
array([False, False, False, False, False])
array([False, False, False, True, False])
代码实战2:
import numpy as np
string = np.array(["a", "b", "c", "d"]) # 字符型变量
np.isnan(string)
运行结果:
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-23-59d45d4d2cac> in <module>
----> 1 np.isnan(string)
TypeError: ufunc 'isnan' not supported for the input types, and the inputs could not be safely coerced to any supported types according to the casting rule ''safe''
注意 : 从这里看出,对于字符型np数组是无法使用np.isnan()函数的。
np.count_nonzero() 函数
作用:
np.count_nonzero() 是用于统计矩阵中非零元素的个数。
import numpy as np
a1 = np.array([[1, np.nan, 3, 4, 5],
[2, 0, 4, 5, np.nan]])
np.count_nonzero(a1)
运行结果:
9
注意:空值 ≠ 0 ;空值也是一个非0元素
无穷大常量 np.inf
np.inf = np.Inf = np.infty = np.Infinity = np.PINF