numpy之排序

'''
    排序:
        1.联合间接排序:   排序后的有序索引 = np.lexsort((次序列,主序列))--->先以主序列为标准排序再以次序列为标准排序,返回排序后的有序索引
        2.复数数组排序:   np.sort_complex(复数数组)--->先按照实部排序,再按照虚部排序
        3.插入排序:      若已知有序数组,需要向该数组中插入元素,使得插入后,依然有序
                待插入索引 = np.seachsorted(有序数组,待插入数据)
'''
import numpy as np

p = np.array(['Apple', 'Huawei', 'Mi', 'Oppo', 'Vivo'])  # 产品
prices = np.array([8000, 4999, 2999, 3999, 3999])  # 价格
volumns = np.array([40, 80, 50, 35, 40])  # 销量
# 联合间接排序
indexes = np.lexsort((-volumns, -prices))  # 加'-'表示降序
print(indexes)
print(p[indexes])

# 插入排序
a = np.array([1, 2, 3, 6, 9])
b = np.array([5, 8])
indexes = np.searchsorted(a, b)
print(indexes)
# 把b数组中元素按照indexes的索引位置,插入a数组中
d = np.insert(a, indexes, b)
print(d)


输出结果:
[0 1 4 3 2]
['Apple' 'Huawei' 'Vivo' 'Oppo' 'Mi']
[3 4]
[1 2 3 5 6 8 9]

 

posted @ 2019-07-12 14:30  一如年少模样  阅读(1089)  评论(0编辑  收藏  举报