数据大清洗_Numpy进阶(数组排序)(数组去重与重复)(数组统计分析)

2023-11-14

一、数组排序

sort 函数是最常用的排序方法。 arr.sort()
sort 函数也可以指定一个 axis 参数,使得 sort 函数可以沿着指定轴对数据集进行排
序。axis=1 为沿横轴排序; axis=0 为沿纵轴排序。

import numpy as np

# 创建一个一维的数组
# arr = np.array([5, 4, 6, 8, 1, 2, 9])
# print('arr:\n', arr)
# #
# # # 对数组进行排序 ---快排--对列的方向的进行排序--对原数组直接产生影响
# arr.sort()
# # 升序排序
# print('排序之后的数组:\n', arr)

# 创建二维的数组
arr = np.array([[7, 5, 8], [9, 6, 4], [3, 4, 9]])
print(arr)

# 对二维数组进行排序
# 列的方向进行升序排序
# 如:此时排序,各行之间毫无关系,只是在各行内部,对不同的列进行升序排序
# arr.sort()
# 行的方向上升序排序
# 如:此时排序,各列之间毫无关系,只是在各列内部,对不同的行进行升序排序
arr.sort(axis=0)
print('排序之后的数组:\n', arr)


print("***********************************")
# 间接排序
# 不对数组排序,只是返回数组排序之后的下标
arr2 = np.array([5, 4, 6, 8, 1, 2, 9])
print('arr:\n', arr2)

# 使用np.argsort进行排序
res = np.argsort(arr2)
print('排序之后的结果:\n',res)


print("***********************************")
# 二维数组
arr3 = np.array([[7, 5, 8], [9, 6, 4], [3, 4, 9]])
print(arr3)

# 列的方向 ---返回的是对应的下标
res = np.argsort(arr3, axis=-1)
print(res)

二、数组去重与重复

(一)数组去重
通过 unique 函数可以找出数组中的唯一值并返回已排序的结果。
应用场景:
统计类别种类数目;
信息清洗,去掉重复数据,例如班级学员统计,可以依据电话号码等属性进行去重。

import numpy as np

# 数组去重功能
# 创建数组
# arr = np.array([2, 2, 2, 2, 1, 1, 1, 5, 5, 5, 4, 4, 4, 6, 6, 6])
# print(arr)

# arr = np.array(['zs', 'ls', 'ww', 'zl', 'kk', 'zz', 'zs', 'ls', 'ww', 'zl', 'kk'])
# print(arr)
arr = np.array(['小明','小名','小名','小名','小花','小华','小花'])
print(arr)
print('*' * 100)

# 查看该数组中具有哪些数据
# 可以使用unique进行去重,---兼并排序
# 英文数组 也适用
# 中文数组 也适用  ---- 中文数组排序 ----编码---unicode---之后在进行ansii排序
res = np.unique(arr)
print(res)

(二)数组重复 可以使用 np.tile 和 np.repeat 来进行数组重复

这两个函数的主要区别在于,tile 函数是对数组进行重复操作,repeat 函数是对数组
中的每个元素进行重复操作

import numpy as np

# 创建一个二维数组
arr = np.arange(9).reshape((3, 3))
print('arr:\n', arr)
print('*' * 100)

# 重复 -# np.tile --以数组的整体为单位进行重复
# 参数1 需要重复的数组
# 参数2 重复次数 ---可以指定按照对应的维度重复的次数
res = np.tile(arr, 2)
# 现在列的方向重复2次之后,以整体再在行的方向重复2次,再在以整体在块的方向重复2次
res1 = np.tile(arr, [2, 2, 2])
print(res1)


print("****************************")
# np.repeat
# 重复
# 参数1 需要重复的数组
# 参数2 重复的次数
# axis 指定重复方向、轴
# 若指定轴,沿着轴的方向以整行、整列为一个重复单位来重复指定的次数
res3 = np.repeat(arr, 2, axis=1)
# 如果不指定轴,默认会将数组展开,然后按照列的方向 以每一个元素为一个重复单位来重复指定次数
res4 = np.repeat(arr, 2)
# 不能省略重复次数
print(res3)
print(res4)

三、数组统计与分析

在这里插入图片描述

import numpy as np

# 创建一个二维数组
arr = np.arange(1, 17).reshape((4, 4))
print('arr:\n', arr)
print('*' * 100)

# np.统计指标  --numpy里面的方法
# arr.统计指标 --ndarray里面的方法

# 沿着行的方向 ---向下统计的
# # sum(和)  -----相加
print('对arr 进行求和:', np.sum(arr, axis=0))
#
# # mean(均值) -----和/个数
print('对arr 进行求均值:', np.mean(arr, axis=0))
#
# # std(标准差) ---反应的数据的离散程度
print('对arr 进行求标准差:', np.std(arr, axis=0))
#
# # var(方差) ---标准差的平方---反应的数据的离散程度
print('对arr 进行求方差:', np.var(arr, axis=0))
#
# # min(最小值)
print('对arr 进行求最小值:', np.min(arr, axis=0))
#
# # max(最大值)
print('对arr 进行求最大值:', np.max(arr, axis=0))
#
# # argmin(最小值的下标)
print('对arr 进行求最小值下标:', np.argmin(arr, axis=0))
#
# # argmax(最大值的下标)
print('对arr 进行求最大值下标:', np.argmax(arr, axis=0))

# # cumsum(累计和)
print('对arr 进行求累计和:\n', np.cumsum(arr, axis=0))
# # cumprod(累计积)
print('对arr 进行求取累计积:\n', np.cumprod(arr, axis=0))

# 如果不指定轴 ---展开进行成一维进行统计指标
print('对arr 进行求取累计和:\n',np.cumsum(arr))


# ndarray里面的方法
print('对arr 进行求取累计和:\n',arr.cumsum(axis=0))

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

数据大清洗_Numpy进阶(数组排序)(数组去重与重复)(数组统计分析) 的相关文章

随机推荐

  • React Router中useRoutes()方法的使用

    运用场景 当我们需要路由权限控制点时候 对路由数组做一些权限的筛选过滤 这时需要把路由进行集中式管理 所谓的集中式路由配置就是用一个数组统一把所有的路由对应关系写好替换本来的Roues组件 便于管理路由 更加灵活 原来的路由写法 impor
  • STM32 基础系列教程 45 - FSMC_LCD_Touch

    前言 上一节我们完成了用 STM32F4的 FSMC接口来控制 TFTLCD的显示的操作 其实正点原子的探索者F4开发板带的屏幕支持触摸操作 笔者用的是4 3寸的电容触摸屏 本节我们继续实验 来完成基于STM32的触摸屏的实验 关于触摸屏的
  • Xshell的下载与安装

    引言 上一篇文章有介绍Windows子系统的安装与使用 安装Ubuntu桌面版确实可以直接使用Ubuntu子系统 但是Ubuntu桌面版的界面不是很好看 并且不能直接上传文件到服务器中 所以本篇章介绍SSH远程终端工具Xshell的下载与安
  • Springboot的application.properties或者application.yml环境的指定运行与配置

    Springboot的application properties或者application yml文件的配置 1 关于多个配置环境的指定运行 我们在主配置文件编写的时候 文件名可以是 application profile propert
  • 【k8s】ImagePullBackOff 错误处理

    文章目录 1 概述 2 问题复现 参考 1 概述 ImagePullBackOff错误比较简单 镜像下载失败 要么网络设置有问题 要么没有设置镜像源 另外一个比较隐蔽的问题是 当你在集群环境下 假设有3个节点 那么这三个节点都要设置镜像源
  • 物联网专业毕业设计题目大全

    文章目录 1 前言 2 选题分享 2 1 嵌入式方向 2 2 算法方向 2 3 移动通信方向 2 4 学长作品展示 3 选题技巧 3 1 如何避坑 重中之重 3 2 难度把控 3 3 题目名称 4 最后 1 前言 这是学长亲手整理的物联网相
  • k8s部署gitlab最新版并初始化和登录

    前提条件是已经部署了k8s环境 采用k8s部署gitlab作为devops的测试环境 更加简洁和方便 1 准备工作 1 1 创建nfs共享目录 在nfs服务器创建共享目录 部署的gitlib使用共享目录来进行持久化 这样不管在哪个节点运行g
  • 一个程序员的成长历程(持续更新)

    此处将是我学习编程的整个简单过程将持续记录只想在这里见证我一步步的成长 此时学习编程200天 2016 8 1 大一刚接触时的冲动和欣喜 认为语言种类积累学习越多我将走向成功 如今大一暑假 经过这一阶段对c语言与c 学习过后 喜欢上了算法
  • 使用windows自带的任务计划程序定时运行python程序(详细教程)

    最近写了一段微信定时发送消息的代码 但是这样需要一直将代码运行 现在运用windows自带的任务计划程序来实现代码自动运行 以达到定时发送消息的效果 将此记录下来方便下次使用时查找 1 打开搜索框搜索windows管理工具 并打开 2 在w
  • UML2面向对象分析与设计(第2版) 谭火彬 期末复习整理+部分答案【超实用】

    所用教材 谭火彬 编著 笔者纯手打整理 喜欢的话请点赞 关注我哦 UML相关的书就不能精简一点嘛 配套答案在公众号 书圈 内下载 也可以通过百度网盘链接 https pan baidu com s 1IPFlXBCVItuXrPZzY6qv
  • 程序员的自我修养--链接、装载与库笔记:目标文件里有什么

    编译器编译源代码后生成的文件叫做目标文件 目标文件从结构上讲 它是已经编译后的可执行文件格式 只是还没有经过链接的过程 其中可能有些符号或有些地址还没有被调整 其实它本身就是按照可执行文件格式存储的 只是跟真正的可执行文件在结构上稍有不同
  • 合并两数组(并排序)

    将两个数组num1和num2合并 升序排序 代码如下 import java util Arrays public class LangSuZu public int Hebing int num1 int num2 int num3 ne
  • 操作系统4小时速成:进程管理复习重点,进程,线程,处理机调度,进程同步,死锁

    操作系统4小时速成 进程管理复习重点 进程 线程 处理机调度 进程同步 死锁 2022找工作是学历 能力和运气的超强结合体 遇到寒冬 大厂不招人 可能很多算法学生都得去找开发 测开 测开的话 你就得学数据库 sql oracle 尤其sql
  • Altium Designer(五)光耦元件模型的创建

    软件 Altium Designer 16 往期博客 AD 一 AD的工程创建 AD 二 电阻 电容 模型的创建 AD 三 IC类元件模型创建 AD 四 排针类元件模型的创建 AD 五 光耦元件模型的创建 AD 六 已有元件库的调用 AD
  • CentOS8 MySQL 主主模式+keepalived高可用环境搭建非docker版

    概述 采用了MySQL KeepAlived实现MySQL高可用 旨在当主机发生宕机等异常情况时 使用备机的MySQL服务 以此保证系统服务的高可用 这套环境的搭建过程中 需要注意的事项如下 1 MySQL是否数据同步 在大批量数据写入的情
  • TCP —— TCP的可靠传输

    一 TCP的可靠传输 二 序号 TCP首部的序号字段用来保证数据能有序提交给应用层 序号建立在传送的字节流上 而不建立在报文段之上 三 确认 四 重传 1
  • MySQL redo log及recover过程浅析

    MySQL redo log及recover过程浅析 写在前面 作者水平有限 欢迎不吝赐教 一切以最新源码为准 InnoDB redo log 首先介绍下Innodb redo log是什么 为什么需要记录redo log 以及redo l
  • MATLAB实现滑动平均滤波法的实例(移动平均滤波器)

    原始信号 0 03 1 46 0 26 0 47 1 46 0 06 0 47 1 27 0 15 0 47 1 47 0 01 0 47 1 27 0 17 0 63 1 37 0 15 0 88 1 07 0 25 0 88 1 27
  • 三极管来源,及NPN与PNP区别

    之前给大家分享过晶体管的知识 今天又继续为大家分享相关的内容 一 回顾历史 在分享三极管NPN和PNP之前 先给大家分享一些相关基础知识 1 电子管 在晶体管出现之前 有一种作用和晶体管类似的器件 叫做电子管 1904年 世界上第一只电子二
  • 数据大清洗_Numpy进阶(数组排序)(数组去重与重复)(数组统计分析)

    目录 一 数组排序 二 数组去重与重复 三 数组统计与分析 一 数组排序 sort 函数是最常用的排序方法 arr sort sort 函数也可以指定一个 axis 参数 使得 sort 函数可以沿着指定轴对数据集进行排 序 axis 1