精华内容
下载资源
问答
  • NumPy中array和matrix用于矩阵乘法时的区别Author: nex3z2015-01-03在NumPy中,array用于表示通用的N维数组,matrix则特定用于线性代数计算。array和matrix都可以用来表示矩阵,二者在进行乘法操作时,有一些不同之...

    NumPy中array和matrix用于矩阵乘法时的区别

    Author: nex3z

    2015-01-03

    在NumPy中,array用于表示通用的N维数组,matrix则特定用于线性代数计算。array和matrix都可以用来表示矩阵,二者在进行乘法操作时,有一些不同之处。

    使用二维的array时,运算符* 用于计算逐元素相相乘,函数dot() 用于计算矩阵相乘,例子如:

    import numpy as np

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

    b = np.array([[5, 6], [7, 8]])

    print 'a * b = \n', a * b

    print 'np.dot(a, b) = \n', np.dot(a, b)

    运行结果为:

    a * b =

    [[ 5 12]

    [21 32]]

    np.dot(a, b) =

    [[19 22]

    [43 50]]

    可见,当a和b为array时,a * b 计算了a和b的数量积(对应Matlab的a .* b ),dot(a, b) 计算了a和b的矢量积(对应Matlab的a * b )。

    与array不同的是,使用matrix时,运算符* 用于计算矩阵相乘,函数multiply() 用于计算逐元素相乘,例子如:

    import numpy as np

    a = np.mat('1 2; 3 4')

    b = np.mat('5 6; 7 8');

    print 'a * b = \n', a * b

    print 'np.multiply(a, b) = \n', np.multiply(a, b)

    运行结果为:

    a * b =

    [[19 22]

    [43 50]]

    np.multiply(a, b) =

    [[ 5 12]

    [21 32]]

    可见,当使用matrix时,无论是生成矩阵还是计算,Numpy的风格和Matlab更加贴近,降低了语言切换时的负担。

    展开全文
  • numpy 矩阵乘法NumPy matrix multiplication can be done by the following three methods. NumPy矩阵乘法可以通过以下三种方法完成。 multiply(): element-wise matrix multiplication. multiple():逐元素矩阵...

    numpy矩阵乘法

    NumPy matrix multiplication can be done by the following three methods.

    NumPy矩阵乘法可以通过以下三种方法完成。

    1. multiply(): element-wise matrix multiplication.

      multiple():逐元素矩阵乘法。
    2. matmul(): matrix product of two arrays.

      matmul():两个数组的矩阵乘积。
    3. dot(): dot product of two arrays.

      dot():两个数组的点积。

    1. NumPy矩阵乘法元素明智 (1. NumPy Matrix Multiplication Element Wise)

    If you want element-wise matrix multiplication, you can use multiply() function.

    如果要逐元素矩阵相乘,可以使用multiple()函数。

    import numpy as np
    
    arr1 = np.array([[1, 2],
                     [3, 4]])
    arr2 = np.array([[5, 6],
                     [7, 8]])
    
    arr_result = np.multiply(arr1, arr2)
    
    print(arr_result)

    Output:

    输出:

    [[ 5 12]
     [21 32]]

    The below image shows the multiplication operation performed to get the result matrix.

    下图显示了为获得结果矩阵而执行的乘法运算。

    Numpy Matrix Multiply

    Numpy Matrix multiply()

    numpy矩阵乘法()

    2.两个NumPy阵列的矩阵乘积 (2. Matrix Product of Two NumPy Arrays)

    If you want the matrix product of two arrays, use matmul() function.

    如果要两个数组的矩阵乘积,请使用matmul()函数。

    import numpy as np
    
    arr1 = np.array([[1, 2],
                     [3, 4]])
    arr2 = np.array([[5, 6],
                     [7, 8]])
    
    arr_result = np.matmul(arr1, arr2)
    
    print(f'Matrix Product of arr1 and arr2 is:\n{arr_result}')
    
    arr_result = np.matmul(arr2, arr1)
    
    print(f'Matrix Product of arr2 and arr1 is:\n{arr_result}')

    Output:

    输出:

    Matrix Product of arr1 and arr2 is:
    [[19 22]
     [43 50]]
    Matrix Product of arr2 and arr1 is:
    [[23 34]
     [31 46]]

    The below diagram explains the matrix product operations for every index in the result array. For simplicity, take the row from the first array and the column from the second array for each index. Then multiply the corresponding elements and then add them to reach the matrix product value.

    下图说明了结果数组中每个索引的矩阵乘积运算。 为简单起见,为每个索引取第一个数组的行和第二个数组的列。 然后乘以相应的元素,然后将它们相加以达到矩阵乘积值。

    Numpy Matrix Product

    Numpy Matrix Product

    块状矩阵产品

    The matrix product of two arrays depends on the argument position. So matmul(A, B) might be different from matmul(B, A).

    两个数组的矩阵乘积取决于参数位置。 因此,matmul(A,B)可能与matmul(B,A)不同。

    3.两个NumPy阵列的点积 (3. Dot Product of Two NumPy Arrays)

    The numpy dot() function returns the dot product of two arrays. The result is the same as the matmul() function for one-dimensional and two-dimensional arrays.

    numpy dot()函数返回两个数组的点积。 结果与一维和二维数组的matmul()函数相同。

    import numpy as np
    
    arr1 = np.array([[1, 2],
                     [3, 4]])
    arr2 = np.array([[5, 6],
                     [7, 8]])
    
    arr_result = np.dot(arr1, arr2)
    
    print(f'Dot Product of arr1 and arr2 is:\n{arr_result}')
    
    arr_result = np.dot(arr2, arr1)
    
    print(f'Dot Product of arr2 and arr1 is:\n{arr_result}')
    
    arr_result = np.dot([1, 2], [5, 6])
    print(f'Dot Product of two 1-D arrays is:\n{arr_result}')

    Output:

    输出:

    Dot Product of arr1 and arr2 is:
    [[19 22]
     [43 50]]
    Dot Product of arr2 and arr1 is:
    [[23 34]
     [31 46]]
    Dot Product of two 1-D arrays is:
    17

    参考资料 (References)

    翻译自: https://www.journaldev.com/32966/numpy-matrix-multiplication

    numpy矩阵乘法

    展开全文
  • numpy 中 array() 和 matrix() 用法的关联与区别马富天2019-02-27 14:53:0812【摘要】在 numpy 中,array() 用于表示 n 维数组, matrix 指用于线性代数计算(矩阵)。 array 和 matrix 本质上都可以用来表示矩阵,只是...

    numpy 中 array() 和 matrix() 用法的关联与区别

    马富天

    2019-02-27 14:53:08

    12

    【摘要】在 numpy 中,array() 用于表示 n 维数组, matrix 指用于线性代数计算(矩阵)。 array 和 matrix 本质上都可以用来表示矩阵,只是在进行乘法操作的时候,各自实现方式有不同之处。

    matrix 是属于 array 的一个分支,两者在大多方面上都是通用的,功能上基本没有太大的区别。但在两者都可以使用时,官方推荐选择 array ,因为 array 更灵活,速度更快;而

    matrix 优势就是在与两个矩阵相乘可以直接使用乘法运算符 * 进行计算,而 array 则需要使用 dot() 函数。

    在使用 array 时,乘法运算符 * 用于计算数量积(也可以直接函数 multiply() 计算数量积),函数 dot() 用于计算矢量积。如下:import numpy as np

    A = np.array(

    [

    [1,2],

    [3,4]

    ]

    )

    B = np.array(

    [

    [1,2],

    [3,4]

    ]

    )

    C = A * B

    print(C)

    C = np.multiply(A,B)

    print(C)

    '''

    [[ 1 4]

    [ 9 16]]

    '''

    D = np.dot(A,B)

    print(D)

    '''

    [[ 7 10]

    [15 22]]

    '''

    然而,在使用 matrix 时,乘法运算符 * 表示计算向量积,而计算数量积则使用函数 multiply(),实例如下所示:import numpy as np

    A = np.matrix(

    [

    [1,2],

    [3,4]

    ]

    )

    B = np.matrix(

    [

    [1,2],

    [3,4]

    ]

    )

    C = A * B

    print(C)

    '''

    [[ 7 10]

    [15 22]]

    '''

    D = np.multiply(A,B)

    print(D)

    '''

    [[ 1 4]

    [ 9 16]]

    '''

    顶0

    踩0

    我要打赏

    展开全文
  • Numpy中array和matrix乘法

    千次阅读 2018-12-19 16:56:30
    Numpy中矩阵乘法问题对于array对象对于matrix对象总结 Numpy中的矩阵乘法分为两大情况,使用numpy.array和使用numpy.matrix. Numpy确实重载了*操作符,可以直接对array或者matrix对象进行乘法运算,但是在不同对象...

    Numpy中的矩阵乘法分为两大情况,使用numpy.array和使用numpy.matrix. Numpy确实重载了*操作符,可以直接对array或者matrix对象进行乘法运算,但是在不同对象上,其意义是有区别的。

    对于array对象

    *(或multiply)代表的是并不是矩阵的乘法规则,而是简单的数量积,即对应位置元素相乘后的积相加。

    import numpy as np
    a=np.array([[1,2],[3,4]])
    b=np.array([[1,2],[3,4]])
    print(a*b)
    #[[ 1  4]
     #[ 9 16]]
    

    如果在array对象上要进行严格的矩阵乘法,即矢量乘法,则必须使用.dot()或者.matmul()函数,两者是等效的。

    import numpy as np
    a=np.array([[1,2],[3,4]])
    b=np.array([[1,2],[3,4]])
    print(np.dot(a,b))
    print(np.matmul(a,b))
    # [[ 7 10]
    #  [15 22]]
    # [[ 7 10]
    #  [15 22]]
    

    对于matrix对象

    对于matrix,情况就悄悄相反了。
    *表示的是矢量积,如果希望以数量积方式运行,则必须使用np.multiply函数。因为*重载矩阵运算规则只限于matrix对象。

    import numpy as np
    
    x=np.mat('1 2;3 4')
    y=np.mat('1 2;3 4')
    print(x*y)
    print(np.multiply(x,y))
    # [[ 7 10]
    #  [15 22]]
    # [[ 1  4]
    #  [ 9 16]]
    

    总结

    1、对于array对象,*np.multiply函数代表的是数量积,如果希望使用矩阵的乘法规则,则应该调用np.dotnp.matmul函数。
    2、对于matrix对象,*直接代表了原生的矩阵乘法,而如果特殊情况下需要使用数量积,则应该使用np.multiply函数。

    展开全文
  • [Numpy]array与matrix乘法上的不同

    万次阅读 2019-11-28 18:19:41
    [Numpy]array与matrix乘法上的不同1 Numpy乘法的实现2 上代码(array,matrix在*,dot,multiply上的异同)2.1 定义array和matrix两个矩阵2.2 取array和matrix的第一行2.3 取array和matrix的第一列2.4 array进行...
  • matrix和array的乘法有所区别 1、array A * A是对应元素相乘,np.dot(A, A)是矩阵乘法 2、matrix ...A * A是矩阵乘法,np.multiply(A, A)是对应元素相乘 ...具体参考这篇博文[numpy]matrix和array的乘和加...
  • numpy乘法

    2020-11-30 21:19:05
    元素乘法:np.multiply(a,b) 矩阵乘法:np.dot(a,b) 或 np.matmul(a,b) 或 a.dot(b) 或直接用 a @ b ! 唯独注意:*,在 np.array 中重载为元素乘法,在 np.matrix 中重载为矩阵乘法)
  • 详解numpy中array类型和matrix类型 Numpy中两大重要类型array类型(N维数组ndarray)和矩阵类型matrix是很多基于Numpy数值计算的基础,因此搞清楚两者的关系是相当重要的, 特别是程序中混杂了这两种类型,还夹带着...
  • 讨论numpy中的np.matmul,.dot以及*的区别,要区分一维情况和二维情况。 一维情况 import numpy as np np_array = np.arange(3) print( 'np_array:', np_array, '\ndot:', np_array.dot(np_array), '\n*:', np_...
  • Python Numpy矩阵乘法

    2020-09-15 18:41:23
    In this tutorial we will see python matrix multiplication using numpy (Numerical Python) library. 在本教程中,我们将看到使用numpy(Numerical Python)库的python矩阵乘法 。 For using numpy you must ...
  • 对于matrix对象,*直接代表了原生的矩阵乘法,而如果特殊情况下需要使用数量积,则应该使用np.multiply函数。 简而言之,无论对于array还是matrix的数据类型np.multiply都是指的数量积,而对于matrix来说,为了和...
  • numpymatrix 和 array的区别,有需要的朋友可以参考下。Numpy matrices必须是2维的,但是numpy arrays (ndarrays) 可以是多维的(1D,...在numpymatrix的主要优势是:相对简单的乘法运算符号。例如,a和b是两个...

空空如也

空空如也

1 2 3 4 5 ... 15
收藏数 299
精华内容 119
关键字:

matrix乘法numpy