美文网首页我爱编程
numpy -- 利用数组进行数据处理 排序 去重以及其它集合运

numpy -- 利用数组进行数据处理 排序 去重以及其它集合运

作者: b485c88ab697 | 来源:发表于2017-09-04 23:22 被阅读719次

    利用数组进行数据处理

    类型 说明
    unique(x) 计算x中的唯一元素,并返回有序结果。
    intersect1d(x, y) 计算x和y中的公共元素,并返回有序结果。
    union1d(x, y) 计算x和y的并集,并返回有序结果。
    in1d(x, y) 得到一个表述"x的元素是否包含于y"的布尔型数组
    setdiff1d(x, y) setdiff1d(x, y)
    setxor1d(x, y) 集合的差,即元素在x中且不在y中
    cumprod 集合的异或,即存在于一个数组中但不同时存在于两个数组中的元素。
    import numpy as np
    

    排序

    arr = np.random.randn(5)
    arr.sort()
    print(arr)
    
    [-0.78386546 -0.38684845 -0.36686693  0.12452924  0.84976248]
    

    二维数组排序

    arr = np.random.randn(5,3)
    print(arr)
    
    [[ 0.78372274 -1.1086224   0.19517135]
     [-1.68156953  1.38959928  1.64771021]
     [-1.00695144  1.04649726 -0.57994712]
     [-1.55014457 -0.12266938 -1.43501458]
     [ 0.41199755  1.13162107  0.68240463]]
    
    arr.sort(1)
    print(arr)
    
    [[-1.1086224   0.19517135  0.78372274]
     [-1.68156953  1.38959928  1.64771021]
     [-1.00695144 -0.57994712  1.04649726]
     [-1.55014457 -1.43501458 -0.12266938]
     [ 0.41199755  0.68240463  1.13162107]]
    

    找中位数

    arr = np.random.randn(10000000)
    arr.sort()
    print(arr[int(0.5*len(arr))])
    
    0.000460625211239
    

    唯一化

    names = np.array(['Bob', 'Joe', 'Will', 'Bob', 'Will', 'Joe', 'Joe'])
    

    传统做法

    print(set(names))
    
    {'Bob', 'Joe', 'Will'}
    

    unique的方法

    print(np.unique(names))
    print(sorted(set(names)))
    
    ['Bob' 'Joe' 'Will']
    ['Bob', 'Joe', 'Will']
    

    成员资格判断

    values = np.array([6, 0, 0, 3, 2, 5, 6])
    print (np.in1d(values, [2, 3, 6]))
    
    [ True False False  True  True False  True]
    

    相关文章

      网友评论

        本文标题:numpy -- 利用数组进行数据处理 排序 去重以及其它集合运

        本文链接:https://www.haomeiwen.com/subject/cspyjxtx.html