zoukankan      html  css  js  c++  java
  • Numpy 基础运算

    numpy的几种运算

    1、一维矩阵运算

     1 >>> import numpy as np
     2 >>> a=np.array([10,20,30,40])   # array([10, 20, 30, 40])
     3 >>> b=np.arange(4)              # array([0, 1, 2, 3])
     4 >>> c=a-b  #两个矩阵的减法
     5 >>> print(c)
     6 [10 19 28 37]
     7 >>> c=a+b #加法
     8 >>> print(c)
     9 [10 21 32 43]
    10 >>> c=a*b #乘法
    11 >>> print(c)
    12 [  0  20  60 120]
    13 >>> c=b**2 #矩阵的二次方
    14 >>> print(c)
    15 [0 1 4 9]
    16 >>> c=10*np.sin(a) #三角函数,对矩阵中每一项元素进行函数运算
    17 >>> print(c)
    18 [-5.44021111  9.12945251 -9.88031624  7.4511316 ]
    19 >>> print(b<3) #逻辑判断,返回的是一个bool类型的矩阵,即对满足要求的返回True,不满足的返回False。 用"=="表示相等,而不是"="
    20 [ True  True  True False]

    2、多行多维矩阵运算

    #多行多维矩阵运算
    >>> a=np.array([[1,1],[0,1]])
    >>> b=np.arange(4).reshape((2,2))
    >>> print(a)
    [[1 1]
     [0 1]]
    >>> print(b)
    [[0 1]
     [2 3]]
    
    >>> c_dot = np.dot(a,b) #标准的矩阵乘法运算,即对应行乘对应列得到相应元素:
    >>> print(c_dot)
    [[2 4]
     [2 3]]
    
    >>> c_dot_2 = a.dot(b)#另外的一种关于dot的表示方法
    >>> print(c_dot_2)
    [[2 4]
     [2 3]]

    3、sum()、min()、max()的使用

    >>> import numpy as np
    >>> a=np.random.random((2,4))#随机生成数字,每一元素均是来自从0到1的随机数
    >>> print(a)
    [[0.44709296 0.39365818 0.8059794  0.12903175]
     [0.9441432  0.58932822 0.69222956 0.94534534]]
    
    >>> np.sum(a)
    4.946808608663762
    >>> np.min(a)
    0.129031749915261
    >>> np.max(a)
    0.9453453374741386
    
    >>> print("a =",a)
    a = [[0.44709296 0.39365818 0.8059794  0.12903175]
     [0.9441432  0.58932822 0.69222956 0.94534534]]
    >>> print("sum =",np.sum(a,axis=1))# 当axis的值为0的时候,将会以列作为查找单元, 当axis的值为1的时候,将会以行作为查找单元。
    sum = [1.77576229 3.17104632]
    >>> print("min =",np.min(a,axis=0))
    min = [0.44709296 0.39365818 0.69222956 0.12903175]
    >>> print("max =",np.max(a,axis=1))
    max = [0.8059794  0.94534534]

    4、对应元素的索引

    >>> import numpy as np
    >>> A = np.arange(2,14).reshape((3,4))
    >>> print(np.argmin(A))#argmin() 求矩阵中最小元素的索引
    0
    >>> print(np.argmax(A))#argmax() 求矩阵中最大元素的索引
    11
    
    >>> print(np.mean(A))#将整个矩阵的均值求出来
    7.5
    >>> print(np.average(A))
    7.5
    >>> print(A.mean())#另一种求均值的写法
    7.5
    
    >>> print(np.median(A))#求中位数
    7.5
    
    >>> print(np.cumsum(A))#累加,生成的每一项矩阵元素均是从原矩阵首项累加到对应项的元素之和
    [ 2  5  9 14 20 27 35 44 54 65 77 90]
    
    >>> print(np.diff(A))#累差运算,计算每一行中后一项与前一项之差。故一个3行4列矩阵通过函数计算得到的矩阵便是3行3列的矩阵。
    [[1 1 1]
     [1 1 1]
     [1 1 1]]

    5、nonzero()函数

    这个函数将所有非零元素的行与列坐标分割开,重构成两个分别关于行和列的矩阵。

    >>> print(np.nonzero(A))
    (array([0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2], dtype=int64), array([0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3], dtype=int64))

    6、clip()函数

    这个函数的格式是clip(Array,Array_min,Array_max),顾名思义,Array指的是将要被执行用的矩阵,而后面的最小值最大值则用于让函数判断矩阵中元素是否有比最小值小的或者比最大值大的元素,并将这些指定的元素转换为最小值或者最大值。

    >>> print(A)
    [[14 13 12 11]
     [10  9  8  7]
     [ 6  5  4  3]]
    >>> print(np.clip(A,5,9))
    [[9 9 9 9]
     [9 9 8 7]
     [6 5 5 5]]

    7、排序、转置

    >>> import numpy as np
    >>> A = np.arange(14,2, -1).reshape((3,4))
    >>> print(np.sort(A))#从小到大排序
    [[11 12 13 14]
     [ 7  8  9 10]
     [ 3  4  5  6]]
    
    >>> print(np.transpose(A))#两种转置方法
    [[14 10  6]
     [13  9  5]
     [12  8  4]
     [11  7  3]]
    >>> print(A.T)
    [[14 10  6]
     [13  9  5]
     [12  8  4]
     [11  7  3]]
  • 相关阅读:
    关于MTK平台CC相关的Log查询
    es5 对象方法
    es5 数组查询案例
    继承 和 es5 新增方法 数组方法
    扩展内置对象
    Js 面向对象 动态添加标签页
    记住用户名 缓存案例 localstorage
    解析好的静态页面.shtml浏览器无法解析.需要apache解析后再返回给浏览器
    开始工作----微信通过get检查当前网站---是否可用
    view视图--display中echo出ob_get_contents的缓冲内容--(实现,拼接好文件--导入文件)
  • 原文地址:https://www.cnblogs.com/anhoo/p/9382629.html
Copyright © 2011-2022 走看看