• Numpy数组的排序与去重


    数组的排序

    import numpy as np
    
    # 创建一维数组
    # arr = np.array([5, 3, 6, 2, 8])
    # print('arr:\n', arr)
    # print('*' * 100)
    
    # 直接排序
    # sort() ---升序排序
    # arr.sort()
    #
    # print('排序之后的数组:\n', arr)
    
    # 间接排序 --排序结果所对应的下标
    # res = arr.argsort()
    #
    # print('res:',res)
    
    # 创建二维数组
    arr = np.array([[5, 4, 6],
                    [4, 8, 3],
                    [9, 5, 7]])
    print('arr:\n', arr)
    print('*' * 100)
    
    # 直接排序 ---列的方向排序 --->向右 --->水平
    # arr.sort(axis=1)
    
    # print('排序之后的结果为:\n',arr)
    
    # 排序的时候,自己动自己,不管其他的兄弟姐妹
    
    # 间接排序  ---返回下标
    # res = arr.argsort(axis=1)
    # print('res:\n',res)
    
    

    数组的去重

    import numpy as np
    
    # 对数组进行去重
    # 创建数组
    # arr = np.array([5, 5, 5, 6, 7, 7, 6, 1, 1, 0, 0])
    # arr = np.array(['tom', 'mary', 'bob', 'tom', 'bob', 'mary'])
    arr = np.array(['小花', '小华', '小化', '夏明', '李雷', '韩梅梅', '小花', '小华', '小化', '夏明', '李雷', '韩梅梅'])
    print('arr:\n', arr)
    print('*' * 100)
    
    # 可以使用np.unique对数组进行去重,注意:去重,兼并着排序
    # 注意:如果为英文字符串数组,排序规则是按照ascii码进行排序的
    # 注意:如果为中文字符串数组,排序规则先对中文进行encode编码,再按照编码之后的ascii进行排序
    arr = np.unique(arr)
    print('arr:\n', arr)
    
    

    数组的重复

    import numpy as np
    
    # 创建数组
    arr = np.arange(9).reshape((3, 3))
    print('arr:\n', arr)
    
    # 可以使用np.tile对数组重复 ----重复对象为:整个数组
    # 参数1:需要重复的数组
    # 参数2: The number of repetitions of `A` along each axis.
    # res = np.tile(arr, 2) # 默认为列的方向
    # res = np.tile(arr, [2, 2])  # 指的是在行的方向重复2次,在列的方向也重复2次
    # res = np.tile(arr, [2, 2, 2])  # 指的是在块的方向重复2次,在行的方向重复2次,在列的方向也重复2次
    # print('res:\n', res)
    
    # 可以使用np.repeat来对数组进行重复 --重复对象:整列、整行、单个元素
    # 参数1:需要重复的数组
    # 参数2:重复的次数
    # 参数3:重复的方向
    # res = np.repeat(arr, 2, axis=0)
    # res = np.repeat(arr, 2, axis=1)
    # res = np.repeat(arr, 2, axis=None)  # 如果不传递axis,会将原来的数组展开为一维再以元素为重复对象进行重复
    # res = np.repeat(arr, [2, 2, 3], axis=1)  # 将第0列重复2次,将第1列重复2次,将第2列重复3次
    # print('res:\n', res)
    
    
  • 相关阅读:
    ZOJ2334 Monkey King 并查集 STL
    ZOJ2286 Sum of Divisors 筛选式打表
    ZOJ2105 终于找到错误
    ZOJ-2091-Mean of Subsequence (反证法的运用!!)
    【9929】潜水员
    【9928】混合背包
    【t077】宝物筛选
    【9927】庆功会
    【9926】完全背包
    【9925】0/1背包
  • 原文地址:https://www.cnblogs.com/duxiangjie/p/15753305.html
Copyright © 2020-2023  润新知