Python-使用空值进行赋值-None_shangyj17的博客
0.摘要
在Python中,尤其是数组当中,对于一些异常值往往需要进行特殊处理。为了防止异常值与正常数据混淆,影响最终计算结果,常用的方法是将异常值置零或者置空。置零的方法较为简单,本文主要介绍如果对python中的数据进行置空。
1.赋值为None
对于一般数据,可以直接为其赋值为None。
- i = 1
- i = None # int 型数据置空
- s = "string"
- s = None # 字符串型数据置空
- l = [1,2,3,4]
- l[2] = None # 列表中元素置空
- print(i, s, l)
2.numpy类型
numpy 中的数据较为特殊,如果将一个int 型元素赋值为None,或者np.nan都会产生报错:
- a = np.arange(10)
- a[2] = None
- a = np.arange(10)
- a[2] = np.nan
如果打印np.nan的类型,会发现np.nan是float类型的。
- >>> type(np.nan)
- <class 'float'>
在numpy数组中,将int型元素赋值为float类型,是不合法的。赋值语句不会报错,但numpy会自动将float类型转为int型。
而打印None类型,会发现None没有类型。
- >>> type(None)
- <class 'NoneType'>
赋值报错的原因,个人认为是:numpy判断类型不符,但也无法完成类型转换,所以产生了报错。
在numpy中,如果想将某一元素赋值为None或者这np.nan,可以先将数组转换为float类型。
- a = np.arange(10, dtype=float)
- a[2] = np.nan
- a[3] = None
- print(a)
从最终结果上看,不论是np.nan,还是None,在numpy中都以nan的形式出现。
推荐阅读