NumPy-简单的统计分析

数组进行简单统计分析

直接排序

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

间接排序

(1)argsort 函数返回值为重新排序值的下标。  格式:  arr.argsort();

(2)lexsort 函数返回值是按照最后一个传入数据排序的。  格式:  np.lexsort((a,b,c));

去重与重复数据

(1)通过 unique 函数可以找出数组中的唯一值并返回已排序的结果。  格式:  np.unique ();

(2)tile 函数主要有两个参数,  参数“A”指定重复的数组,  参数“reps”指定重复的次数。  格式:  np.tile(A ,reps);

(3)repeat 函数主要有三个参数,参数“A”是需要重复的数组元素,参数“reps”是重复次数,参数“axis”指定沿着哪个轴进行重复,axis = 0 表示按行进行元素重复;axis =1 表示按列进行元素重复。  格式:  np.repeat(A, reps, axis=None);

 

1.直接排序

(1)一维数组的直接排序

import numpy as np

arr = np.random.randint(1,10,size=10)   # 随机生成10个数的一维数组
print(arr) 
# 结果例如 : [3 8 5 8 7 1 4 5 4 3]

arr.sort()
print('排序后: ',arr) 
# 结果例如 : [1 3 3 4 4 5 5 7 8 8]

(2)二维数组的直接排序

import numpy as np

# (1)按行排序
arr2 = np.random.randint(1,10,size=[3,3]) # 随机生成3*3的二维数组
print(arr2)
# 结果例如 :
# [[9 8 4]
#  [2 2 1]
#  [4 1 8]]

arr2.sort()   
print('按行排序后: ',arr2) 
# 结果例如 : 
# [[4 8 9]
#  [1 2 2]
#  [1 4 8]]


# (2)按列排序
arr3 = np.random.randint(1,10,size=[3,3]) # 随机生成3*3的二维数组
print(arr3)
# 结果例如 :
# [[5 6 2]
#  [5 3 8]
#  [1 3 7]]

arr3.sort(axis = 0)   # 按列排序
print('按列排序后: ',arr3) 
# 结果例如 : 
# [[1 3 2]
#  [5 3 7]
#  [5 6 8]]

 

2.间接排序

(1)argsort(函数返回值是重新排序后的下标)

import numpy as np

arr = np.array([2,3,6,8,0,7])
result = arr.argsort()
print(result)
# 结果: [4 0 1 2 5 3]

(2)lexsort(函数返回值是按最后一个传入的数据排序)

import numpy as np

arr1 = np.array([3,2,6,4,5])
arr2 = np.array([50,30,40,20,10])
arr3 = np.array([400,300,600,100,200])

result = np.lexsort((arr1,arr2,arr3))     # 按最后一个传入的数据排序,最后一个是arr3
print(result)
# 结果: [3 4 1 0 2]

 

3.去重与重复数据

(1)unique() 去重数据

import numpy as np

names = np.array(['小明','蘑菇','小旭','小明','小旭'])

print(names)
# 结果: ['小明' '蘑菇' '小旭' '小明' '小旭']

arr = np.unique(names)
print('去重后的数组为: ',arr)
# 结果: ['小旭' '小明' '蘑菇']

(2)title():  针对整个数组的重复,不针对单独元素的重复;   

格式:  np.tile(数组,重复次数);

import numpy as np

names = np.array(['小明','蘑菇','小旭','小明'])

arr2 = np.tile(names,3)
print('重复后的数组为: ',arr2)
# 结果: ['小明' '蘑菇' '小旭' '小明' '小明' '蘑菇' '小旭' '小明' '小明' '蘑菇' '小旭' '小明']

(3)repeat():  主要针对元素重复;

格式:  np.repeat(数组,重复次数,重复格式)  或  name.repeat(重复次数,重复格式) ;    

注意:  axis = 0按行重复;   axis = 1按列重复;

(3.1)按行重复

import numpy as np

name = np.arange(1,10).reshape((3,3))
print(name)
# 结果:
# [[1 2 3]
#  [4 5 6]
#  [7 8 9]]

arr = np.repeat(name,2,axis = 0) # 按行重复  
# arr = name.repeat(2,axis = 0) # 2个参数的写法,效果如上行代码
print(arr)
# 结果:
# [[1 2 3]
#  [1 2 3]
#  [4 5 6]
#  [4 5 6]
#  [7 8 9]
#  [7 8 9]]

(3.2)按列重复 

import numpy as np

name = np.arange(1,10).reshape((3,3))
print(name)
# 结果:
# [[1 2 3]
#  [4 5 6]
#  [7 8 9]]

# arr = np.repeat(name,2,axis = 1) # 按列重复 
arr = name.repeat(2,axis = 1) # 2个参数的写法,效果如上行代码
print(arr)
# 结果:
# [[1 1 2 2 3 3]
#  [4 4 5 5 6 6]
#  [7 7 8 8 9 9]]

 

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值