在numpy中,数组运算更加快速并且简洁尤其在于处理数据方面
一、排序
| 函数 | 排序方式 |
| sort() | 直接排序 |
| argsort() | 间接排序 |
| lexsort() | 间接排序 |
1.1sort()使用sort函数进行排序。
arr = np.array([8,5,6,3,9,4,3,6,7,3])
print('排序前:',arr)
arr.sort()
print('排序后:',arr)
# 排序前: [8 5 6 3 9 4 3 6 7 3]
# 排序后: [3 3 3 4 5 6 6 7 8 9]
带轴向参数的sort排序。
arr = np.array([[6,2,7,5],[9,8,8,6],[7,6,8,4]])
print('横向排序前:\n',arr)
arr.sort(axis = 1) #沿横向排序 ‘改0是纵向’
print('横向排序后:\n',arr)
# 横向排序前:
# [[6 2 7 5]
# [9 8 8 6]
# [7 6 8 4]]
# 横向排序后:
# [[2 5 6 7]
# [6 8 8 9]
# [4 6 7 8]]
1.2argsort() lexsort()
arr = np.array([2,1,7,10,10,12,11,15,11,14])
print('排序前:',arr)
print('排序后:',arr.argsort())
# 排序前: [ 2 1 7 10 10 12 11 15 11 14]
# 排序后: [1 0 2 3 4 6 8 5 9 7]
#返回值是排序的下标排列 可以理解为索引
a=[2,5,8,4,3,7,6]
b=[9,4,0,4,0,2,1]
c=np.lexsort((a,b))
print(c)
# [4 2 6 5 3 1 0]
二、重复数据与去重
在numpy中实现重复数据用tile(),repeat(),去重用unique()
2.1使用tile函数实现数据重复。
arr = np.arange(5)
print('处理前:',arr)
re = np.tile(arr,3)
print('重复数据处理:\n',re)
# 处理前: [0 1 2 3 4]
# 重复数据处理:
# [0 1 2 3 4 0 1 2 3 4 0 1 2 3 4]
2.2 使用repeat函数实现数据重复。
import numpy as np
arr1 = np.arange(11)
print('原数据:',arr1)
rp1 = np.tile(arr1,3)
print('原数据重复3次:\n',np.tile(arr1,4))
arr2 = np.array([[1,2,3],[4,5,6]])
print('重复数据处理:\n',arr2.repeat(2,axis=0))
# 原数据: [ 0 1 2 3 4 5 6 7 8 9 10]
# 原数据重复3次:
# [ 0 1 2 3 4 5 6 7 8 9 10 0 1 2 3 4 5 6 7 8 9 10 0 1
# 2 3 4 5 6 7 8 9 10 0 1 2 3 4 5 6 7 8 9 10]
# 重复数据处理:
# [[1 2 3]
# [1 2 3]
# [4 5 6]
# [4 5 6]]
2.3unique去重
arr1 = np.array(['学校','老师','学生','教室','老师'])
print('原数据:',arr1)
print('去重后的数组:',np.unique(arr1))
# 原数据: ['学校' '老师' '学生' '教室' '老师']
# 去重后的数组: ['学校' '学生' '教室' '老师']
三、常用的统计函数
| 函数 | 说明 |
| np.sum | 数组的和 |
| np.sum(arr,axis = 0) | 数组纵轴的和 |
| np.sum(arr,axis = 1) | 数组横轴的和 |
| np.mean | 数组的均值 |
| np.mean(arr,axis = 1) | 数组横轴的均值 |
| np.std | 数组的标准差 |
| np.std(arr,axis = 1) | 数组横轴的标准差 |
arr = np.arange(36).reshape(6,6)
print('创建的数组:\n',arr)
print('数组的和:',np.sum(arr))
print('数组纵轴的和:',np.sum(arr,axis = 0))
print('数组横轴的和:',np.sum(arr,axis = 1))
print('数组的均值:',np.mean(arr))
print('数组横轴的均值:',np.mean(arr,axis = 1))
print('数组的标准差:',np.std(arr))
print('数组横轴的标准差:',np.std(arr,axis = 1))
# 创建的数组:
# [[ 0 1 2 3 4 5]
# [ 6 7 8 9 10 11]
# [12 13 14 15 16 17]
# [18 19 20 21 22 23]
# [24 25 26 27 28 29]
# [30 31 32 33 34 35]]
# 数组的和: 630
# 数组纵轴的和: [ 90 96 102 108 114 120]
# 数组横轴的和: [ 15 51 87 123 159 195]
# 数组的均值: 17.5
# 数组横轴的均值: [ 2.5 8.5 14.5 20.5 26.5 32.5]
# 数组的标准差: 10.388294694831615
# 数组横轴的标准差: [1.70782513 1.70782513 1.70782513 1.70782513 1.70782513 1.70782513]

1508

被折叠的 条评论
为什么被折叠?



