zoukankan      html  css  js  c++  java
  • numpy的基础运算2-【老鱼学numpy】

    numpy的基础运算中还有很多运算,我们这里再记录一些。

    最小/大值索引

    前面一篇博文中我们讲述过如何获得数组中的最小值,这里我们获得最小/大值的索引值,也就是这个最小/大值在整个数组中位于第几位。

    import numpy as np
    a = np.array([[10, 30, 15],
                  [20, 5, 25]])
    print("a=")
    print(a)
    
    print("最小值索引:", a.argmin())
    print("最大值索引:", np.argmax(a))
    

    输出为:

    a=
    [[10 30 15]
     [20  5 25]]
    最小值索引: 4
    最大值索引: 1
    

    这就意味着这里最小值的索引号是4,也就是数组中第4位的值,也就是数值5。

    平均值

    import numpy as np
    a = np.array([[10, 30, 15],
                  [20, 5, 25]])
    print("a=")
    print(a)
    
    print("平均值:", a.mean())
    

    输出为:

    a=
    [[10 30 15]
     [20  5 25]]
    平均值: 17.5
    

    我们也可以通过axis参数来指定到底是在行上的平均值还是列上的平均值。
    例如,我们使用axis=1来指示行上的平均值:

    import numpy as np
    a = np.array([[10, 30, 15],
                  [20, 5, 25]])
    print("a=")
    print(a)
    
    print("行平均值:", a.mean(axis=1))
    

    输出为:

    a=
    [[10 30 15]
     [20  5 25]]
    行平均值: [ 18.33333333  16.66666667]
    

    累积求和

    import numpy as np
    a = np.array([10, 30, 15, 20, 5, 25])
    print("a=")
    print(a)
    
    print("累积求和:", a.cumsum())
    

    输出:

    a=
    [10 30 15 20  5 25]
    累积求和: [ 10  40  55  75  80 105]
    

    累差

    import numpy as np
    a = np.array([4, 6, 9, 1, 9])
    print("a=")
    print(a)
    
    print("累差:", np.diff(a))
    

    输出:

    a=
    [4 6 9 1 9]
    累差: [ 2  3 -8  8]
    

    输出结果就是后一个元素的值减去前一个元素的值,最终元素的个数少1。

    找出非0的数

    import numpy as np
    a = np.array([[4, 0, 9],
                  [1, 0, 8]])
    print("a=")
    print(a)
    
    print("找出非零的数:", np.nonzero(a))
    

    输出为:

    a=
    [[4 0 9]
     [1 0 8]]
    找出非零的数: (array([0, 0, 1, 1], dtype=int64), array([0, 2, 0, 2], dtype=int64))
    

    在上述的输出结果中表示的非0数是相应的索引位置,因为我们是二维数组,所以结果有两段,第一段表示某一维中的索引号,另一段表示的是另一维的索引号。
    具体解读为其中的非零值位于:(0, 0), (0, 2), (1, 0), (1, 2)
    也就是其中数字4、9、1、8所在的索引位置。

    排序

    import numpy as np
    a = np.array([[4, 0, 9],
                  [1, 0, 8]])
    print("a=")
    print(a)
    
    print("排序结果:")
    print(np.sort(a))
    
    

    输出:

    a=
    [[4 0 9]
     [1 0 8]]
    排序结果:
    [[0 4 9]
     [0 1 8]]
    

    转置矩阵

    转置矩阵就是把行变成列,列变成行。例如:

    import numpy as np
    a = np.array([[4, 0, 9],
                  [1, 0, 8]])
    print("a=")
    print(a)
    
    print("转置矩阵:")
    print(np.transpose(a))
    

    输出为:

    a=
    [[4 0 9]
     [1 0 8]]
    转置矩阵:
    [[4 1]
     [0 0]
     [9 8]]
    

    也可以用简写的方式:a.T,这个读者自己去试试吧。

    截取矩阵中的数据

    把矩阵中的数改变成只属于某个数据范围内的数,例如:

    import numpy as np
    a = np.array([[4, 6, 9],
                  [1, 7, 8]])
    print("a=")
    print(a)
    
    print("np.clip:")
    print(np.clip(a, 3, 7))
    

    输出为:

    a=
    [[4 6 9]
     [1 7 8]]
    np.clip:
    [[4 6 7]
     [3 7 7]]
    

    这样就把其中的元素都设置成了3到7的范围之内的数,比3小的数被修改成了3,比7大的数被修改成了7。

  • 相关阅读:
    springmvc学习笔记--json--返回json的日期格式问题
    springmvc学习笔记--mybatis--使用插件自动生成实体和mapper
    velocity的一些用法
    String.split()用法以及特殊分隔符注意,ps:|
    Mybatis在idea中错误:Invalid bound statement (not found)
    maven中使用junit老是找不到包
    java字符编码和oracle乱码
    ehcache报错
    java继承覆盖与向上转型,权限
    java变量的加载顺序
  • 原文地址:https://www.cnblogs.com/dreampursuer/p/7826934.html
Copyright © 2011-2022 走看看