数据分析学习-第06课(3-4节)-numpy中的nan和常用方法(有相应课件视频下载链接在文末)--特征工程缺省值补均值
第3节 numpy中的nan和常用统计方法
1.numpy中的nan/inf
import numpy as np a = np.nan b = np.inf print(type(a)) print(type(b))
<class ‘float’>
<class ‘float’>
2.numpy 中的nan的注意点
import numpy as np t1 = np.arange(24).reshape(4,6).astype(float) t2 = t1.clip(3,20) # print(t1) t2[3,3] = np.nan t2[:,0] = 0 print(t2)
[[ 0. 3. 3. 3. 4. 5.]
[ 0. 7. 8. 9. 10. 11.]
[ 0. 13. 14. 15. 16. 17.]
[ 0. 19. 20. nan 20. 20.]]
np.count_nonzero(t2)
20
t2 !=t2
array([[False, False, False, False, False, False],
[False, False, False, False, False, False],
[False, False, False, False, False, False],
[False, False, False, True, False, False]], dtype=bool)
np.isnan(t2)
array([[False, False, False, False, False, False],
[False, False, False, False, False, False],
[False, False, False, False, False, False],
[False, False, False, True, False, False]], dtype=bool)
np.count_nonzero(np.isnan(t2))
1
import numpy as np t1 = np.arange(24).reshape(4,6).astype(float) t2 = t1.clip(3,20) # print(t1) t2[3,3] = np.nan print(t2) print(sum(t2)) print(np.sum(t2))
注意:sum(t2)和 np.sum(t2)的区别,sum(t2)是计算每列相加的结果,如上图;np.sum(t2)是所有的值相加的结果
import numpy as np t3 = np.array(range(12)).reshape(3,4) print(t3) print("列相加:%s"%np.sum(t3,axis=0)) print("行相加:%s"%np.sum(t3,axis=1))
[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]]
列相加:[12 15 18 21]
行相加:[ 6 22 38]
注意:np.sum(t3,axis=0)其实是行行相加,即第1行+第2行+第3行+第4行
np.sum(t3,axis=1)其实是列列相加,即第1列+第2列+第3列+第4列
3.numpy中常用的统计函数
import numpy as np t1 = np.arange(24).reshape(4,6).astype(float) t2 = t1.clip(3,20) # print(t1) t2[3,3] = np.nan t2[:,0] = 0 print(t2)
t2.sum(axis=0)
array([ 0., 42., 45., nan, 50., 53.])
t2.mean(axis=0)
array([ 0. , 10.5 , 11.25, nan, 12.5 , 13.25])
np.median(t2,axis=0) D:\Program Files\Anaconda3\lib\site-packages\numpy\lib\function_base.py:3578: RuntimeWarning: Invalid value encountered in median for 1 results RuntimeWarning)
array([ 0., 10., 11., nan, 13., 14.])
出现了警告,是nan导致的
t2.max(axis=0)
array([ 0., 19., 20., nan, 20., 20.])----行与行之间的比较,也即求一列的最大值
t2.min(axis=0)
array([ 0., 3., 3., nan, 4., 5.])
np.ptp(t2,axis=0)
array([ 0., 16., 17., nan, 16., 15.])----注意求出的是最大值与最小值的差
第4节 numpy中填充nan和youtube数据的练习
在进行特征工程和数据分析的时候经常需要补缺省值,这里讨论下如何填补nan的值,采用平均值法填补:
import numpy as np t = np.arange(12).reshape(3,4).astype('float') t[1,2:] = np.nan print(2) for i in range(t.shape[1]): temp_col = t[:,i] #找出有nan的列 nan_num = np.count_nonzero(temp_col != temp_col) if nan_num !=0: #统计除nan外其他值,并求其均值 temp_non_nan_col = temp_col[temp_col == temp_col] temp_col[np.isnan(temp_col)] =temp_non_nan_col.mean() # temp_col[temp_col != temp_col] = temp_not_nan_col.mean() print(temp_col) print(t)
总结:
链接:https://pan.baidu.com/s/1d-_QhcV8ZyTnayDigBpT7A
提取码:0vbq
复制这段内容后打开百度网盘手机App,操作更方便哦
- 二级建造师备考方法及学习资料课件视频百度云网盘下载
- Python Numpy数据分析中常用方法
- 数据分析学习常用的数据源
- 学习机器学习 数据处理时 找到的这些链接 可以在上面下载到开源的研究数据数据
- 最常用的四种数据分析方法
- SAP BW PA_特征数据的加载——视频学习笔记11
- numpy学习笔记三:numpy文件读写与常用统计方法
- 机器学习 数据特征分析 特征工程
- Python sklearn数据分析中常用方法
- 学习机器学习 数据处理时 找到的这些链接 可以在上面下载到开源的研究数据数据
- java学习之旅56--数组_StringBuilder和StringBuffer的使用_常用方法_方法链的实现_JDK源码分析
- JAVA基础 day13 String类和StringBUffer类的常用方法 基本数据类型包装类的学习
- Python数据分析几个比较常用的方法
- 大数据分析学习之路—安装数据分析常用库
- js判断移动端是否安装某软软件,安装直接打开相应的链接,否则跳转到下载商店方法
- 不会做特征工程的 AI 研究员不是好数据科学家!上篇 - 连续数据的处理方法 本文作者:s5248 编辑:杨晓凡 2018-01-19 11:32 导语:即便现代机器学习模型已经很先进了,也别
- 这里有一些常用的学习视频的下载,有学习网络的朋友可以参考
- 算法第三次作业(1. 排序。对文件 largeW.txt(下载链接)中的数据,编程实现冒泡排序(方法名:bubbleSort) 与 归并排序(mergeSort),把排序后的结果分别保存到largeW
- 大数据hadoop学习视频资料免费下载
- 下载没有种子链接用特征码下片的方法