数组进行简单统计分析
直接排序
(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]]