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

一、数组排序

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))

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值