zoukankan      html  css  js  c++  java
  • numpy运算简介(一)

    a = np.array([[1, 3], [2, 4]])
    b = np.array([[5, 1], [2, 2]])
    print(type(a), type(b))
    ##<class 'numpy.ndarray'> <class 'numpy.ndarray'>

    求和(np.add)

    print(a + b)  # [[6 4] [4 6]]
    print(np.add(a, b))  # [[6 4] [4 6]]

    求差(np.substract)

    print(b - a)  # [[ 4 -2] [ 0 -2]]
    print(np.subtract(b, a))  # [[ 4 -2] [ 0 -2]]

    求积(np.dot、np.matmul、np.multiply、*)

    #求积
    print(np.matmul(a, b))  # [[11  7] [18 10]]
    print(np.dot(a, b))  # [[11  7] [18 10]]
    print(np.multiply(a, b))  # [[5 3] [4 8]]
    print(a * b)  # [[5 3] [4 8]]
    
    a_m = np.mat([[1, 3], [2, 4]])
    b_m = np.mat([[5, 1], [2, 2]])
    print(type(a_m), type(b_m))  # <class 'numpy.matrix'> <class 'numpy.matrix'>
    
    print(np.matmul(a_m, b_m))  # [[11  7] [18 10]]
    print(np.dot(a_m, b_m))  # [[11  7] [18 10]]
    print(np.multiply(a_m, b_m))  # [[5 3] [4 8]]
    print(a_m * b_m)  # [[11  7] [18 10]]

    由上面可以看出:

    对于array类型来说  :只有matmul、dot方法执行矩阵乘法 而 multiply、*则执行对应位的相乘。

    对于matrix类型来说:只有matmul、dot、*方法执行矩阵相乘 而 multiply则执行对应位相乘。

    所以通常采用matnul或者dot进行矩阵相乘,multiply进行对应为相乘。

  • 相关阅读:
    Codeforces 931A&1312A&172A
    STL常用容器(deque&stack&queue)
    Codeforces 141A&1368A
    Tensorflow安装和配置
    Spark高可用配置
    Spark安装及环境配置
    SSH免密登录
    大数据集群linux环境搭配
    Spark学习之RDD算子
    Spark学习之再谈RDD
  • 原文地址:https://www.cnblogs.com/answerThe/p/11368923.html
Copyright © 2011-2022 走看看