数据清洗常用工具之Numpy

  1. 目前在 Python 中,numpy 和 pandas 是最主流的工具
  2. Numpy 中的向量化运算使得数据处理变得高效
  3. Pandas 提供了大量数据清洗的高效方法
  4. 在Python中,尽可能多的使用 numpy 和 pandas 中的函数,提高数据清洗的效率
Numpy 常用数据结构
  1. Numpy 中常用的数据结构是 ndarray 格式

  2. 可以使用 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]]
  3. 还可以使用其他函数例如 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.]]
    
数组常用函数:
  1. arr1.ndim:判断 arr1 是几维数组

  2. arr1.shape:判断 arr1 是几行几列

  3. arr1.size:判断 arr1 数组里面有多少个元素

  4. 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常用数据清洗函数

  1. 排序函数
    • 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号元素最大
    
  2. 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]
  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相关推荐

  1. 基于Python的数据清洗常用工具

    基于Python的数据清洗常用工具 Python数据清洗实战入门之数据清洗的常用工具 一.数组运算库Numpy Numpy常用数据结构 创建一维数组 通过嵌套列表创建二维数组 使用Numpy的迭代器生 ...

  2. python数据清洗工具、方法、过程整理归纳(一、数据清洗之常用工具——numpy,pandas)

    文章目录 1 背景 2 常用工具 2.1 numpy 2.2 pandas 1 背景 数据清洗是整个数据分析过程的第一步,也是整个数据分析项目中最耗费时间的一步: 数据分析的过程决定了数据分析的准确性 ...

  3. 【算法竞赛学习】气象海洋预测-Task1 气象数据分析常用工具

    气象海洋预测-Task1 气象数据分析常用工具 气象科学中的数据通常包含多个维度,例如本赛题中给出的数据就包含年.月.经度.纬度四个维度,为了便于数据的读取和操作,气象数据通常采用netCDF文件来存 ...

  4. 【算法竞赛学习】数字中国创新大赛智慧海洋建设-Task1地理数据分析常用工具

    智慧海洋建设-Task1 地理数据分析常用工具 在地理空间数据分析中,常会用到许多地理分析的工具,在本模块中主要是针对常用的shapely.geopandas.folium.kepler.gl.geo ...

  5. 《Python数据分析常用手册》NumPy和Pandas

    转自:https://blog.csdn.net/fu6543210/article/details/80508182 <Python数据分析常用手册>NumPy和Pandas 1.Num ...

  6. python函数分为哪几种_python数据挖掘常用工具有哪几种?

    原标题:python数据挖掘常用工具有哪几种? python有强大的第三方库,广泛用于数据分析,数据挖掘.机器学习等领域,下面小编整理了python数据挖掘的一些常用库,希望对各位小伙伴学习pytho ...

  7. CV:计算机视觉技最强学习路线之CV简介(传统视觉技术/相关概念)、早期/中期/近期应用领域(偏具体应用)、经典CNN架构(偏具体算法)概述、常用工具/库/框架/产品、环境安装、常用数据集、编程技巧

    CV:计算机视觉技最强学习路线之CV简介(传统视觉技术/相关概念).早期/中期/近期应用领域(偏具体应用).经典CNN架构(偏具体算法)概述.常用工具/库/框架/产品.环境安装.常用数据集.编程技巧 ...

  8. ETL数据清洗Kettle工具

    文章目录 一.简介 二.资源库(新建.管理) 三.转换 1. 新建数据源 2. 简单的输入输出 配置步骤 2.1 配置表输入 2.2 配置表输出 2.3 保存 2.4 启动与执行结果 3. 转换 1. ...

  9. 数据可视化常用工具推荐

    数据可视化是将数据分析的结果以图形.表格等形式展示出来,这样能我们更加清晰.明了的理解分析结果.判断数据走势等,让没有进行过数据分析的人也能清楚的了解数据中所含有的规律.趋势等.下面小编将向大家介绍几 ...

最新文章

  1. 现代教育技术课后作业(五)
  2. 探讨微软团队开发利器VSTS之安装及部署篇
  3. 有名管道(FIFO)实现无亲缘关系的客户服务器
  4. 双边滤波--OpenCV实现
  5. 2021年7月【RHCE考试战报】他们都在提升,你还在吃鸡王者吗?
  6. 1 个闭环 + 1 个案例,为你解读实现数据驱动的秘诀
  7. 分析:“AI on Hadoop”有意义吗?
  8. c 函数多次声明_C++核心准则C.132:不要没有理由就将函数声明为虚函数
  9. Spring Cloud Config - RSA简介以及使用RSA加密配置文件
  10. 2016年软件评测师真题精选
  11. 51单片机引脚功能介绍
  12. 恢复希捷硬盘丢失数据的方法
  13. 不懂域名系统,何谈网络编程
  14. Python-Excel报表自动化生成报表(二)
  15. cad重新加载php命令,cad清理图层命令如何使用
  16. Hadoop分布式集群
  17. Matplotlib 学习之:给图片 / 图片的子图添加颜色条/渐变条(colorbar)
  18. Python练习 4.26 ~ 5.6
  19. Zabbix5.0版本 正则表达式
  20. AttributeError: module ‘tensorflow.python.keras.backend‘ has no attribute ‘get_graph‘

热门文章

  1. 新浪微博涨粉秘籍,真秘籍!!
  2. 命令链接远程redis服务器
  3. Android模块间相互调用,处理Android Studio中相互依赖的模块之间的公共依赖关系
  4. Linux下time函数
  5. 6个最优秀的微信小程序UI组件库
  6. Arduino IRremoteESP8266库 调用说明以及示例
  7. [js]点击更换背景颜色/图片
  8. 考研励志--我考研时觉得非常好的一篇文章,适用于考研新手
  9. 软件测试面试题:一份测试计划应该包括哪些内容?
  10. matlab中trapz,MATLAB中trapz和cumtrapz函数