Numpy介绍5

作者: 熊文鑫 | 来源:发表于2019-01-06 19:55 被阅读0次

    Numpy介绍5

    排序和索引
    import numpy as np
    #data = np.sin(np.arange(20)).reshape(5,4)
    #print data
    #ind = data.argmax(axis=0)#data.argmax找到的是索引
    #axis为0,其实是说根据第0个维度进行计算。比如5行4列。是去掉行向量,得到每列的最大值。
    #print ind#打印出来的是索引。
    #data_max = data[ind, range(data.shape[1])]
    #print data_max
    #data.max快速找到最大值
    all(data_max == data.max(axis=0))
    
    True
    
    import numpy as np
    data = np.sin(np.arange(24)).reshape(2,3,4)
    print(data)
    ind = data.argmax(axis=0)
    print(ind)
    
    [[[ 0.          0.84147098  0.90929743  0.14112001]
      [-0.7568025  -0.95892427 -0.2794155   0.6569866 ]
      [ 0.98935825  0.41211849 -0.54402111 -0.99999021]]
    
     [[-0.53657292  0.42016704  0.99060736  0.65028784]
      [-0.28790332 -0.96139749 -0.75098725  0.14987721]
      [ 0.91294525  0.83665564 -0.00885131 -0.8462204 ]]]
    [[0 0 1 1]
     [1 0 0 0]
     [0 1 1 1]]
    
    .titl()方法复制扩展
    a = np.arange(0, 40, 10)
    b = np.tile(a, (3, 5)) 
    print b
    
    [[ 0 10 20 30  0 10 20 30  0 10 20 30  0 10 20 30  0 10 20 30]
     [ 0 10 20 30  0 10 20 30  0 10 20 30  0 10 20 30  0 10 20 30]
     [ 0 10 20 30  0 10 20 30  0 10 20 30  0 10 20 30  0 10 20 30]]
    
    求最大值,排序等统计计算会损失数据信息量作为代价,第一个参数是矩阵本身,第二个参数是损失的向量。
    a = np.arange(0, 40, 10)
    print a
    print '---'
    b = np.tile(a, (1, 4))
    print b
    #print a
    #print b
    a = np.array([[4, 3, 5], [1, 2, 1]])
    #print a
    #b = np.sort(a, axis=1)#所谓的排序,统计一定是要损失信息量作为代价。看,这次列值就损失了原本的信息。
    #print b
    #b
    #a.sort(axis=1)
    #print a
    a = np.array([4, 3, 1, 2])
    j = np.argsort(a)#argmax和argsort都是得出索引。排序默认从小到大排序。
    print j
    print a[j]
    
    [2 3 1 0]
    [1 2 3 4]
    

    相关文章

      网友评论

        本文标题:Numpy介绍5

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