关于np.nan需要注意的地方总结如下:
-
np.nan不是空对象。
-
对列表中的nan进行操作时不能用"==np.nan"来判断。只能用np.isnan()来操作。
-
np.nan的数据类型是float。
import numpy as np
np.nan == np.nan
Out[3]: False
aa = np.array([1,2,3,np.nan,np.nan,4,5,np.nan])
Out[5]: array([ 1., 2., 3., nan, nan, 4., 5., nan])
aa[aa==np.nan] = 100 #错误方式
Out[7]: array([ 1., 2., 3., nan, nan, 4., 5., nan])
aa[np.isnan(aa)] = 100 #对nan操作的正确方式
Out[9]: array([ 1., 2., 3., 100., 100., 4., 5., 100.])
type(np.nan)
Out[10]: float
关于np.nan需要注意的地方总结如下:np.nan不是空对象。 对列表中的nan进行操作时不能用"==np.nan"来判断。只能用np.isnan()来操作。 np.nan的数据类型是float。import numpy as npnp.nan == np.nanOut[3]: Falseaa = np.array([1,2,3,np.nan,np.nan,4,5,np.n...
在我们人工进行数据采集时,难免会有遗漏或者误采的情况,数据中经常可能会有空值(NAN)和空格出现。在进行数据分析和处理之前,进行数据清洗是很有必要的流程,同时也是整个数据分析过程中最为重要的环节。
在叙述方法之前,先构造一个含有空格和空值的DataFrame类型的数据:
# 导入相应模块
import numpy as np
import pandas as pd
from n...
从图像处理到数据分析。。。硬接活啊,就当做对自己的一种历练了。
需求介绍:
读入的数据表格中有很多缺失值,由于数据量很大,不需要对缺失值进行中值填充、均值填充,直接删除即可。每一条数据都有很多特征。。。
像这样:x1,x2,x3,x4,nan,x6,x7,y
x表示特征值,y表示该条数据的标签,nan表示空值
废话不多说,直接上代码:
导包、构建虚拟的数据集
import numpy as np
import pandas as pd
n = 7
DataList = [[str(n-i) for j i
目录
Numpy数组中数据的抽取1.比较操作2.操作布尔数组统计个数记录True的个数
numpy.count_nonzero函数记录True的个数
numpy.sum函数快速查阅3.将布尔数组作为掩码4.花哨的索引单纯的花哨索引组合索引花哨索引与普通索引花哨索引与切片花哨索引与掩码结合使用花哨索引举例_随机取点花哨索引举例_修改值
Numpy数组中数据的抽取
前面讲解了
Numpy中数组的创建,操作,运算等内容
有些时候我们还想要抽取和查看
Numpy数组中符合某些条件的值
还有的时候,我们想要统计
数组中有多少值大于某一个给定的值,或则删除所有超过设定的阈值的异常点
因此,本章将讲解如下内容:
13_Numpy数组(ndarray)中含有缺失值(nan)行和列的删除方法
要删除NumPy数组ndarray中包含缺失值NaN的行或列,可以使用np.isnan()确定缺失值,使用any()或all()提取不含缺失值行和列。
在此,将对以下进行说明内容。
删除所有的缺失值(NaN)
删除包含缺失值(NaN)的行
删除包含缺失值(NaN)的列
如果要用其他值代替缺少的值而不是删除它们,请参阅...
在Python中,可以使用多种方法进行插值填充空值,以下是其中几种常用的方法:
1. 线性插值:使用pandas库中的interpolate()函数进行线性插值,可以通过设置method参数为'linear'来实现。代码示例:
import pandas as pd
# 创建包含空值的Series
s = pd.Series([1, 2, np.nan, 4, 5, np.nan, 7])
# 线性插值
s.interpolate(method='linear', inplace=True)
2. 拉格朗日插值:使用scipy库中的lagrange()函数进行拉格朗日插值,需要先将数据转换为numpy数组进行处理。代码示例:
from scipy.interpolate import lagrange
# 创建包含空值的Series
s = pd.Series([1, 2, np.nan, 4, 5, np.nan, 7])
# 拉格朗日插值
x = s.index[s.notnull()]
y = s[s.notnull()]
f = lagrange(x, y)
s[s.isnull()] = f(s.index[s.isnull()])
3. 样条插值:使用scipy库中的splrep()和splev()函数进行样条插值。代码示例:
from scipy.interpolate import splrep, splev
# 创建包含空值的Series
s = pd.Series([1, 2, np.nan, 4, 5, np.nan, 7])
# 样条插值
x = s.index[s.notnull()]
y = s[s.notnull()]
f = splrep(x, y)
s[s.isnull()] = splev(s.index[s.isnull()], f)
需要注意的是,不同的插值方法可能会对填充结果产生影响,需要根据具体情况选择合适的方法。同时,如果数据中存在大量空值,可以考虑使用其他的填充方法,以提高数据的准确性。