python矩阵乘法的几种实现方法

作者:

文章目录
  • 对 array 和 matrix 对象的操作相同(1) a 和 b 维度相同都是每行对应元素相乘(即对应内积的第一步,不求和) >>> a = np.array([[1,2],[1,2]]) >>> a*a >>> array([[1, 4], [1, 4]]) (2)对于两个矩阵元素 a 和 b 维度不一的情况(array 和 matrix 对象都适用),则需将相应的行和列进行扩充,需要扩充的行或列的维度必须为 1。对列扩充则补 1, 对行扩充则将第一行复制到每一行。比如,a:3 * 1, b: 1 * 2,则 a 扩充为 3 * 2,b 扩充为 3 * 2。如下所示: >>> a = np.array([[1],[1],[1]]) >>> b = np.array([1,2]) >>> np.multiply(a, b) >>> array([[1, 2], [1, 2], [1, 2]]) (3)a 和 b为标量:则标量直接相乘
  • (1)对于 matrix 对象,代表矩阵乘法(维度必须满足相应规则);(2)对于array对象,则是每行对应元素相乘。当 array 对象的 shape 不同时(matrix 对象不行) ,其规则和 np.multiply 一样;
  • 该函数对 array 和 matrix 对象的操作是不一样的。(1)对于 matrix 对象,对应矩阵乘法,对象维度必须满足矩阵乘法规则。(2)对于 array 对象,对应内积,但对象维度必须相同,不支持维度扩展。(3)不支持标量运算。 在array 中,与 multiply 一样,每行对应元素相乘
  • 对于matrix 对象,对应矩阵乘法。对于两个 array 类型的元素:a,b,有如下可能:(1)a 和 b 都是一维 array,那么 dot 就是它们的内积(点乘);(2)a 和 b 都是二维 array,那么 dot 就是它们的矩阵乘积(即按矩阵乘法规则来计算),也可以用 matmul 或 a @ b;(3)如果a 和 b 都是标量(scalar),那么 dot 就是两个数的乘积,也可以用 multiply 或 a * b;(4)若 a:N * D,b:1 * D,那么 dot 为 a 的每一行和 b (只有一行)的 内积; >>>a = np.array([[1,2], [3, 4]]) >>>b = np.array([1, 2]) >>>np.dot(a, b) >>>array([ 5, 11]) 到此这篇关于python 矩阵乘法的几种实现方法的文章就介绍到这了,更多相关python 矩阵乘法内容请搜索风君子博客以前的文章或继续浏览下面的相关文章希望大家以后多多支持风君子博客! 您可能感兴趣的文章: 关于python的矩阵乘法运算 python实现矩阵乘法 Python实现求解斐波那契第n项的解法(包括矩阵乘法+快速幂) Python中的几种矩阵乘法(小结) python中数组和矩阵乘法及使用总结(推荐) python实现矩阵乘法的方法
  • 目录
    • 1. np.multiply
    • 2. *
    • 3. np.matmul
    • 4. np.dot

    对 array 和 matrix 对象的操作相同
    (1) a 和 b 维度相同
    都是每行对应元素相乘(即对应内积的第一步,不求和)

    >>> a = np.array([[1,2],[1,2]])
    >>> a*a
    >>> array([[1, 4],
           [1, 4]])
    

    (2)对于两个矩阵元素 a 和 b 维度不一的情况(array 和 matrix 对象都适用),则需将相应的行和列进行扩充,需要扩充的行或列的维度必须为 1。
    对列扩充则补 1, 对行扩充则将第一行复制到每一行。比如,a:3 * 1, b: 1 * 2,则 a 扩充为 3 * 2,b 扩充为 3 * 2。
    如下所示:

    >>> a = np.array([[1],[1],[1]])
    >>> b = np.array([1,2])
    >>> np.multiply(a, b)
    >>> array([[1, 2],
           [1, 2],
           [1, 2]])
    

    (3)a 和 b为标量:则标量直接相乘

    (1)对于 matrix 对象,代表矩阵乘法(维度必须满足相应规则);
    (2)对于array对象,则是每行对应元素相乘。当 array 对象的 shape 不同时(matrix 对象不行) ,其规则和 np.multiply 一样;

    该函数对 array 和 matrix 对象的操作是不一样的。
    (1)对于 matrix 对象,对应矩阵乘法,对象维度必须满足矩阵乘法规则。
    (2)对于 array 对象,对应内积,但对象维度必须相同,不支持维度扩展。
    (3)不支持标量运算。

    在array 中,与 multiply 一样,每行对应元素相乘

    对于matrix 对象,对应矩阵乘法。
    对于两个 array 类型的元素:a,b,有如下可能:
    (1)a 和 b 都是一维 array,那么 dot 就是它们的内积(点乘);
    (2)a 和 b 都是二维 array,那么 dot 就是它们的矩阵乘积(即按矩阵乘法规则来计算),也可以用 matmul 或 a @ b;
    (3)如果a 和 b 都是标量(scalar),那么 dot 就是两个数的乘积,也可以用 multiply 或 a * b;
    (4)若 a:N * D,b:1 * D,那么 dot 为 a 的每一行和 b (只有一行)的 内积;

    >>>a = np.array([[1,2], [3, 4]])
    >>>b = np.array([1, 2])
    >>>np.dot(a, b)
    >>>array([ 5, 11])
    

    到此这篇关于python 矩阵乘法的几种实现方法的文章就介绍到这了,更多相关python 矩阵乘法内容请搜索风君子博客以前的文章或继续浏览下面的相关文章希望大家以后多多支持风君子博客!

    您可能感兴趣的文章:

    • 关于python的矩阵乘法运算
    • python实现矩阵乘法
    • Python实现求解斐波那契第n项的解法(包括矩阵乘法+快速幂)
    • Python中的几种矩阵乘法(小结)
    • python中数组和矩阵乘法及使用总结(推荐)
    • python实现矩阵乘法的方法

    站内搜索