数据清洗常用工具之Numpy
数据清洗常用工具之Numpy
- 目前在 Python 中,numpy 和 pandas 是最主流的工具
- Numpy 中的向量化运算使得数据处理变得高效
- Pandas 提供了大量数据清洗的高效方法
- 在Python中,尽可能多的使用 numpy 和 pandas 中的函数,提高数据清洗的效率
Numpy 常用数据结构
Numpy 中常用的数据结构是 ndarray 格式
可以使用 array 函数创建,语法格式为 array(列表或元组)
#创建一维数组 arr1 = np.array([-9, 7, 4, 3]) print(type(arr1)) print(arr1) arr2 = np.array([-9, 7, 4, 3],dtype=str) print(type(arr2)) print(arr2) arr3 = np.array([-9, 7, 4, 3],dtype=float) print(type(arr3)) print(arr3) arr4 = np.array([-9, 7, 4, 3],dtype=int) print(type(arr4)) print(arr4) #结果 #<class 'numpy.ndarray'> #[-9 7 4 3] #<class 'numpy.ndarray'> #['-9' '7' '4' '3'] #<class 'numpy.ndarray'> #[-9. 7. 4. 3.] #<class 'numpy.ndarray'> #[-9 7 4 3]#创建二维数组 import numpy as np arr1 = np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12]]) print(arr1) #结果 #[[ 1 2 3 4] # [ 5 6 7 8] # [ 9 10 11 12]]
还可以使用其他函数例如 arange、linspace、zeros 、ones等 创建
# arange数组 numpy.arange(起始值,终止值,步长) 注意:[起始值,终止值)左闭右开 import numpy as np x = np.arange(1,10,1) print(x) #结果 #[1 2 3 4 5 6 7 8 9]# 等差数组:numpy.linspace(起始值,终止值,元素个数,是否包含终止值) 步长=(终止值-起始值)/(元素个数-1) import numpy as np x = np.linspace(1,10,10,endpoint=True) print(x) #结果 #[ 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.]#行列数组 numpy.zeros([行数,列数]) import numpy as np x = np.zeros([4,5]) print(x) #结果 #[[0. 0. 0. 0. 0.] # [0. 0. 0. 0. 0.] # [0. 0. 0. 0. 0.] # [0. 0. 0. 0. 0.]]import numpy as np x = np.zeros(4) print(x) #结果 #[0. 0. 0. 0.]#行列数组 numpy.ones([行数,列数]) import numpy as np x = np.ones(4) print(x) #结果 #[1. 1. 1. 1.]import numpy as np x = np.ones([3,4]) print(x) #结果 #[[1. 1. 1. 1.] # [1. 1. 1. 1.] # [1. 1. 1. 1.]]
数组常用函数:
arr1.ndim:判断 arr1 是几维数组
arr1.shape:判断 arr1 是几行几列
arr1.size:判断 arr1 数组里面有多少个元素
arr1.dtype: 判断 arr1 数组里面元素的数据类型
import numpy as np
x = np.ones([3,4])
y = np.ones(3,dtype=int)
print("------测试数组x------")
print(x)
print("------测试数组y------")
print(y)
print("------判断数组的维度------")
print(x.ndim)
print(y.ndim)
print("------判断数组的形状(几行几列)------")
print(x.shape)
print(y.shape)
print("------判断数组内元素的个数------")
print(x.size)
print(y.size)
print("------判断数组内元素的数据类型------")
print(x.dtype)
print(y.dtype)
#结果
#------测试数组x------
#[[1. 1. 1. 1.]
# [1. 1. 1. 1.]
# [1. 1. 1. 1.]]
#------测试数组y------
#[1 1 1]
#------判断数组的维度------
#2
#1
#------判断数组的形状(几行几列)------
#(3, 4)
#(3,)
#------判断数组内元素的个数------
#12
#3
#------判断数组内元素的数据类型------
#float64
#int32
数组的访问: array[a,b]
a:代表行索引; b:代表列索引 ; 注意:索引下标从零开始,左闭右开!
import numpy as np
data2 = ((8.5,6,4,1.2,0.7),(1.5,3,5.4,7.3,9),(3.2,4.5,6,3,9),(11.2,13.4,15.6,17.8,19))
arr2 = np.array(data2)
print("测试用到的二维数组:")
print(arr2)
print("访问第一行元素")
print(arr2[0])
print("访问前三行元素")
print(arr2[0:3])
print("方式一:访问第二行第二列元素")
print(arr2[1,1])
print("方式二:访问第二行第二列元素")
print(arr2[1][1])
print("第二列和第三列元素")
print(arr2[:,1:3])
#结果
#测试用到的二维数组:
#[[ 8.5 6. 4. 1.2 0.7]
# [ 1.5 3. 5.4 7.3 9. ]
# [ 3.2 4.5 6. 3. 9. ]
# [11.2 13.4 15.6 17.8 19. ]]
#访问第一行元素
#[8.5 6. 4. 1.2 0.7]
#访问前三行元素
#[[8.5 6. 4. 1.2 0.7]
# [1.5 3. 5.4 7.3 9. ]
# [3.2 4.5 6. 3. 9. ]]
#方式一:访问第二行第二列元素
#3.0
#方式二:访问第二行第二列元素
#3.0
#第二列和第三列元素
#[[ 6. 4. ]
# [ 3. 5.4]
# [ 4.5 6. ]
# [13.4 15.6]]
Numpy常用数据清洗函数
排序函数
- sort 函数:从小到大进行排序
#一维数组的排序 import numpy as np s = np.array([1,2,3,4,3,1,2,2,4,6,7,4,8,5,6]) result1 = np.sort(s) #升序排序 result2 = np.array(sorted(s,reverse=True) ) #降序排序 print(result1) print(result2) #结果 #[1 1 2 2 2 3 3 4 4 4 5 6 6 7 8] #[8 7 6 6 5 4 4 4 3 3 2 2 2 1 1]#二维数组的排序 import numpy as np array = ([0,1,3],[4,2,9],[5,4,9],[1,-3,4]) result1 = np.sort(array) result2 = np.sort(array,axis=1) result3 = np.sort(array,axis=0) print("------默认排序为横向排序------") print(result1) print("------axis=1: 横向排序------") print(result2) print("------axis=0: 纵向排序------") print(result3) #结果: ------默认排序为横向排序------ [[ 0 1 3][ 2 4 9][ 4 5 9][-3 1 4]] ------axis=1: 横向排序------ [[ 0 1 3][ 2 4 9][ 4 5 9][-3 1 4]] ------axis=0: 纵向排序------ [[ 0 -3 3][ 1 1 4][ 4 2 9][ 5 4 9]]
- argsort函数:返回的是数据中从小到大的索引值
import numpy as np s = np.array([1,2,3,4,3,1,2,2,4,6,7,4,8,5,6]) result = np.argsort(s) print(result) #结果 #[ 0 5 1 6 7 2 4 3 8 11 13 9 14 10 12] #解析:索引值第0号元素最小,第5号元素其次,以此类推,第12号元素最大
numpy.where(条件,true返回指定的值,false返回指定的值)
import numpy as np
s = np.array([1,2,3,4,3,1,2,2,4,6,7,4,8,5,6])
result = np.where(s>3,-1,1)
print(result)
#结果:
#[ 1 1 1 -1 1 1 1 1 -1 -1 -1 -1 -1 -1 -1]
- numpy.extract(条件:true返回元素的值)
import numpy as np
s = np.array([1,2,3,4,3,1,2,2,4,6,7,4,8,5,6])
result = np.extract(s>3,s)
print(result)
#结果
#[4 4 6 7 4 8 5 6]
数据清洗常用工具之Numpy相关推荐
- 基于Python的数据清洗常用工具
基于Python的数据清洗常用工具 Python数据清洗实战入门之数据清洗的常用工具 一.数组运算库Numpy Numpy常用数据结构 创建一维数组 通过嵌套列表创建二维数组 使用Numpy的迭代器生 ...
- python数据清洗工具、方法、过程整理归纳(一、数据清洗之常用工具——numpy,pandas)
文章目录 1 背景 2 常用工具 2.1 numpy 2.2 pandas 1 背景 数据清洗是整个数据分析过程的第一步,也是整个数据分析项目中最耗费时间的一步: 数据分析的过程决定了数据分析的准确性 ...
- 【算法竞赛学习】气象海洋预测-Task1 气象数据分析常用工具
气象海洋预测-Task1 气象数据分析常用工具 气象科学中的数据通常包含多个维度,例如本赛题中给出的数据就包含年.月.经度.纬度四个维度,为了便于数据的读取和操作,气象数据通常采用netCDF文件来存 ...
- 【算法竞赛学习】数字中国创新大赛智慧海洋建设-Task1地理数据分析常用工具
智慧海洋建设-Task1 地理数据分析常用工具 在地理空间数据分析中,常会用到许多地理分析的工具,在本模块中主要是针对常用的shapely.geopandas.folium.kepler.gl.geo ...
- 《Python数据分析常用手册》NumPy和Pandas
转自:https://blog.csdn.net/fu6543210/article/details/80508182 <Python数据分析常用手册>NumPy和Pandas 1.Num ...
- python函数分为哪几种_python数据挖掘常用工具有哪几种?
原标题:python数据挖掘常用工具有哪几种? python有强大的第三方库,广泛用于数据分析,数据挖掘.机器学习等领域,下面小编整理了python数据挖掘的一些常用库,希望对各位小伙伴学习pytho ...
- CV:计算机视觉技最强学习路线之CV简介(传统视觉技术/相关概念)、早期/中期/近期应用领域(偏具体应用)、经典CNN架构(偏具体算法)概述、常用工具/库/框架/产品、环境安装、常用数据集、编程技巧
CV:计算机视觉技最强学习路线之CV简介(传统视觉技术/相关概念).早期/中期/近期应用领域(偏具体应用).经典CNN架构(偏具体算法)概述.常用工具/库/框架/产品.环境安装.常用数据集.编程技巧 ...
- ETL数据清洗Kettle工具
文章目录 一.简介 二.资源库(新建.管理) 三.转换 1. 新建数据源 2. 简单的输入输出 配置步骤 2.1 配置表输入 2.2 配置表输出 2.3 保存 2.4 启动与执行结果 3. 转换 1. ...
- 数据可视化常用工具推荐
数据可视化是将数据分析的结果以图形.表格等形式展示出来,这样能我们更加清晰.明了的理解分析结果.判断数据走势等,让没有进行过数据分析的人也能清楚的了解数据中所含有的规律.趋势等.下面小编将向大家介绍几 ...
最新文章
- 现代教育技术课后作业(五)
- 探讨微软团队开发利器VSTS之安装及部署篇
- 有名管道(FIFO)实现无亲缘关系的客户服务器
- 双边滤波--OpenCV实现
- 2021年7月【RHCE考试战报】他们都在提升,你还在吃鸡王者吗?
- 1 个闭环 + 1 个案例,为你解读实现数据驱动的秘诀
- 分析:“AI on Hadoop”有意义吗?
- c 函数多次声明_C++核心准则C.132:不要没有理由就将函数声明为虚函数
- Spring Cloud Config - RSA简介以及使用RSA加密配置文件
- 2016年软件评测师真题精选
- 51单片机引脚功能介绍
- 恢复希捷硬盘丢失数据的方法
- 不懂域名系统,何谈网络编程
- Python-Excel报表自动化生成报表(二)
- cad重新加载php命令,cad清理图层命令如何使用
- Hadoop分布式集群
- Matplotlib 学习之:给图片 / 图片的子图添加颜色条/渐变条(colorbar)
- Python练习 4.26 ~ 5.6
- Zabbix5.0版本 正则表达式
- AttributeError: module ‘tensorflow.python.keras.backend‘ has no attribute ‘get_graph‘