美文网首页
numpy聚合运算及扩展其它运算

numpy聚合运算及扩展其它运算

作者: Chaweys | 来源:发表于2020-11-15 10:13 被阅读0次

    #coding=utf-8
    import numpy as np
    
    #一维聚合
    a=np.arange(10)
    print(a)
    #结果:[0 1 2 3 4 5 6 7 8 9]
    
    #sum()求和
    sum_a=np.sum(a)
    print(sum_a)
    #结果:45
    
    sum_a2=sum(a)
    print(sum_a2)
    #结果:45
    
    #min()求最小值
    min_a=np.min(a)
    print(min_a)
    #结果:0
    
    min_a2=min(a)
    print(min_a2)
    #结果:0
    
    #max()求最大值
    max_a=np.max(a)
    print(max_a)
    #结果:9
    
    max_a2=max(a)
    print(max_a2)
    #结果:9
    
    
    
    
    #多维度聚合
    x=np.arange(16).reshape(4,4)
    print(x)
    #结果:
    [[ 0  1  2  3]
     [ 4  5  6  7]
     [ 8  9 10 11]
     [12 13 14 15]]
    
    #求水平方向的总和
    sum_x1=np.sum(x,axis=1)
    print(sum_x1)
    #结果:[ 6 22 38 54]
    
    #求垂直方向的总和
    sum_x2=np.sum(x,axis=0)
    print(sum_x2)
    #结果:[24 28 32 36]
    
    
    #求水平方向的最小值min()
    min_x1=np.min(x,axis=1)
    print(min_x1)
    #结果:[ 0  4  8 12]
    
    #求垂直方向的最小值min()
    min_x2=np.min(x,axis=0)
    print(min_x2)
    #结果:[0 1 2 3]
    
    #求水平方向的最大值max()
    max_x1=np.max(x,axis=1)
    print(max_x1)
    #结果:[ 3  7 11 15]
    
    #求垂直方向的最大值max()
    max_x2=np.max(x,axis=0)
    print(max_x2)
    #结果:[12 13 14 15]
    
    #求平均值(针对所有的元素)
    mean_x=np.mean(x)
    print(mean_x)
    #结果:7.5
    
    #求水平方向的平均值
    mean_x2=np.mean(x,axis=1)
    print(mean_x2)
    #结果:[ 1.5  5.5  9.5 13.5]
    
    #求垂直方向的平均值
    mean_x3=np.mean(x,axis=0)
    print(mean_x3)
    #结果:[6. 7. 8. 9.]
    
    
    #var()求方差
    var_a=np.var(a)
    print(var_a)
    #结果:8.25
    
    #std()求标准差
    std_a=np.std(a)
    print(std_a)
    #结果:2.8722813232690143
    
    
    
    
    #分为数
    a=np.random.rand(10000)
    print(np.percentile(a,q=25))
    #结果:0.25097776454596266  表示在a列表中有25%的元素小于的某值为:0.25097776454596266
    
    print(np.percentile(a,q=100))
    #结果:0.9999961722661844   表示在a列表中有100%的元素小于的某值为:0.9999961722661844,即表明该值为最大值
    
    
    b=np.array([1,2,3,4,5])
    print(np.percentile(b,q=25))
    #结果:2.0  表示在b列表中有25%的元素小于的某值为:2.0
    print(np.percentile(b,q=50))
    #结果:3.0  表示在b列表中有50%的元素小于的某值为:3.0
    

    #coding=utf-8
    import numpy as np
    
    a=np.random.random(16)
    print(a)
    '''
    结果:
    [0.98187255 0.34520873 0.68770773 0.53537404 0.27273322 0.76427577
     0.3951422  0.42394774 0.34851971 0.88847881 0.36136505 0.13658645
     0.14927431 0.399873   0.43105977 0.88164701]
    '''
    
    #argmin()求数组中最小值的索引index
    print(np.argmin(a))
    #结果:11  print(a[11])结果和np.min(a)一样
    
    
    #argmax()求数组中最大值的索引index
    print(np.argmax(a))
    #结果:0  print(a[0])结果和np.max(a)一样
    
    
    a=np.arange(16).reshape(4,4)
    print(a)
    '''
    结果:
    [[ 0  1  2  3]
     [ 4  5  6  7]
     [ 8  9 10 11]
     [12 13 14 15]]
    '''
    
    #shuffix()打乱原数组的排序
    np.random.shuffle(a)
    print(a)
    '''
    结果:
    [[ 8  9 10 11]
     [ 4  5  6  7]
     [ 0  1  2  3]
     [12 13 14 15]]
    '''
    
    #sort()对数组进行水平方向排序(注,此时a已被打乱了顺序)
    print(np.sort(a,axis=1))
    '''
    结果:
    [[ 8  9 10 11]
     [ 4  5  6  7]
     [ 0  1  2  3]
     [12 13 14 15]]
    '''
    
    #sort()对数组进行垂直方向排序(注,此时a已被打乱了顺序)
    print(np.sort(a,axis=0))
    '''
    结果:
    [[ 0  1  2  3]
     [ 4  5  6  7]
     [ 8  9 10 11]
     [12 13 14 15]]
    '''
    
    
    
    
    
    #对元素的访问
    a=np.arange(16).reshape(4,4)
    print(a)
    '''
    [[ 0  1  2  3]
     [ 4  5  6  7]
     [ 8  9 10 11]
     [12 13 14 15]]
    '''
    #同时访问0 和 3
    print(a[0,[True,False,False,True]])
    lan=[True,False,False,True]
    print(a[0,lan])
    #结果:[0 3]
    
    #筛选出数组中[3,10)大于等于3小于10的元素
    print(a[(a>=3)&(a<10)])
    #结果:[3 4 5 6 7 8 9]
    
    #筛选出数组中可以整除2的元素
    print(a[a%2==0])
    #结果:[ 0  2  4  6  8 10 12 14]
    

    相关文章

      网友评论

          本文标题:numpy聚合运算及扩展其它运算

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