日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

python?multiply()與dot使用示例講解_python

作者:坤坤子的世界 ? 更新時間: 2023-02-01 編程語言

首先創建如下的數組和矩陣,其中a,b為數組,A,B為矩陣

import numpy as np
a = np.arange(1,5).reshape(2,2)
type(a)
Out[3]: numpy.ndarray
b = np.arange(0,4).reshape(2,2)
type(b)
Out[5]: numpy.ndarray
A = np.mat(a)
type(A)
Out[7]: numpy.matrix
B = np.mat(b)
type(B)
Out[9]: numpy.matrix

下面列出數組和矩陣使用multiply()和dot以及*計算的結果,計算場景有點多,這里先給出multiply()、dot以及*之間的區別:

1 * 運算符:當參與計算的類型都為數組時,計算方式為:對應位置相乘,當其中一個類型為矩陣時,則采用矩陣乘法。

2 dot運算符:無論參與計算的是數組還是矩陣,計算方式都為:矩陣乘法,

3 multiply()運算符:無論參與計算的是數組還是矩陣,計算方式都為:對應位置相乘。

數組*數組

a
Out[11]: 
array([[1, 2],
       [3, 4]])
b
Out[12]: 
array([[0, 1],
       [2, 3]])
a * b
Out[13]: 
array([[ 0,  2],
       [ 6, 12]])

矩陣*矩陣

A
Out[14]: 
matrix([[1, 2],
        [3, 4]])
B
Out[15]: 
matrix([[0, 1],
        [2, 3]])
A*B
Out[16]: 
matrix([[ 4,  7],
        [ 8, 15]])

數組dot數組

a
Out[18]: 
array([[1, 2],
       [3, 4]])
b
Out[19]: 
array([[0, 1],
       [2, 3]])
a.dot(b)
Out[20]: 
array([[ 4,  7],
       [ 8, 15]])

矩陣dot矩陣

A
Out[14]: 
matrix([[1, 2],
        [3, 4]])
B
Out[15]: 
matrix([[0, 1],
        [2, 3]])
Out[21]: 
matrix([[ 4,  7],
        [ 8, 15]])

數組multiply數組

a
Out[22]: 
array([[1, 2],
       [3, 4]])
b
Out[23]: 
array([[0, 1],
       [2, 3]])
np.multiply(a,b)
Out[24]: 
array([[ 0,  2],
       [ 6, 12]])

矩陣multiply矩陣

A
Out[25]: 
matrix([[1, 2],
        [3, 4]])
B
Out[26]: 
matrix([[0, 1],
        [2, 3]])
np.multiply(A,B)
Out[27]: 
matrix([[ 0,  2],
        [ 6, 12]])

數組*矩陣

a
Out[29]: 
array([[1, 2],
       [3, 4]])
B
Out[30]: 
matrix([[0, 1],
        [2, 3]])
a * B
Out[31]: 
matrix([[ 4,  7],
        [ 8, 15]])

矩陣*數組

a
Out[29]: 
array([[1, 2],
       [3, 4]])
B
Out[30]: 
matrix([[0, 1],
        [2, 3]])
a * B
Out[31]: 
matrix([[ 4,  7],
        [ 8, 15]])

數組dot矩陣

a
Out[35]: 
array([[1, 2],
       [3, 4]])
B
Out[36]: 
matrix([[0, 1],
        [2, 3]])
a.dot(B)
Out[37]: 
matrix([[ 4,  7],
        [ 8, 15]])

矩陣dot數組

A
Out[38]: 
matrix([[1, 2],
        [3, 4]])
b
Out[39]: 
array([[0, 1],
       [2, 3]])
A.dot(b)
Out[40]: 
matrix([[ 4,  7],
        [ 8, 15]])

數組multiply矩陣

a
Out[41]: 
array([[1, 2],
       [3, 4]])
B
Out[42]: 
matrix([[0, 1],
        [2, 3]])
np.multiply(a,B)
Out[43]: 
matrix([[ 0,  2],
        [ 6, 12]])

矩陣multiply數組

A
Out[44]: 
matrix([[1, 2],
        [3, 4]])
b
Out[45]: 
array([[0, 1],
       [2, 3]])
np.multiply(A,b)
Out[46]: 
matrix([[ 0,  2],
        [ 6, 12]])

總結:

1 * 運算符:當參與計算的類型都為數組時,計算方式為:對應位置相乘,當其中一個類型為矩陣時,則采用矩陣乘法。

2 dot運算符:無論參與計算的是數組還是矩陣,計算方式都為:矩陣乘法,

3 multiply()運算符:無論參與計算的是數組還是矩陣,計算方式都為:對應位置相乘。

數組使用*運算符時,其計算方式為對應的位置相乘,當想使用數組進行矩陣乘法時,可以使用dot實現,而矩陣使用*運算符時,其計算方式矩陣相乘,當想使用矩陣進行對應位置相乘時,可以使用multiply實現。可見 dot運算符負責數組/矩陣的矩陣乘法,multiply負責矩陣/數組的對應位置相乘。

原文鏈接:https://blog.csdn.net/qq_33465047/article/details/128430113

欄目分類
最近更新