1. 简单实现

import numpy as np

def unique(ar):
    perm = ar.argsort()
    aux = ar[perm]
    flag = np.concatenate(([True], aux[1:] != aux[:-1]))
    return aux[flag]

if __name__ == '__main__':
    ar = np.random.randint(1, 5, 10)
    print(ar)
    print(unique(ar))

2. 说明如下

import numpy as np

def unique(ar):
    perm = ar.argsort()                        # 排序,perm 一次全排列
    aux = ar[perm]                             # aux 表示排序后的数组
    flag = np.concatenate(([True], aux[1:] != aux[:-1])) 
                           # ar 中元素值不相同的个数及其对应的位置
    return aux[flag]
posted on 2018-01-20 21:02  未雨愁眸  阅读(527)  评论(0编辑  收藏  举报