python multiply()與dot使用示例講解
首先創(chuàng)建如下的數(shù)組和矩陣,其中a,b為數(shù)組,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
下面列出數(shù)組和矩陣使用multiply()和dot以及*計算的結(jié)果,計算場景有點多,這里先給出multiply()、dot以及*之間的區(qū)別:
1 * 運算符:當(dāng)參與計算的類型都為數(shù)組時,計算方式為:對應(yīng)位置相乘,當(dāng)其中一個類型為矩陣時,則采用矩陣乘法。
2 dot運算符:無論參與計算的是數(shù)組還是矩陣,計算方式都為:矩陣乘法,
3 multiply()運算符:無論參與計算的是數(shù)組還是矩陣,計算方式都為:對應(yīng)位置相乘。
數(shù)組*數(shù)組
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]])
數(shù)組dot數(shù)組
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]])數(shù)組multiply數(shù)組
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]])
數(shù)組*矩陣
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]])
矩陣*數(shù)組
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]])數(shù)組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數(shù)組
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]])
數(shù)組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數(shù)組
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]])
總結(jié):
1 * 運算符:當(dāng)參與計算的類型都為數(shù)組時,計算方式為:對應(yīng)位置相乘,當(dāng)其中一個類型為矩陣時,則采用矩陣乘法。
2 dot運算符:無論參與計算的是數(shù)組還是矩陣,計算方式都為:矩陣乘法,
3 multiply()運算符:無論參與計算的是數(shù)組還是矩陣,計算方式都為:對應(yīng)位置相乘。
數(shù)組使用*運算符時,其計算方式為對應(yīng)的位置相乘,當(dāng)想使用數(shù)組進(jìn)行矩陣乘法時,可以使用dot實現(xiàn),而矩陣使用*運算符時,其計算方式矩陣相乘,當(dāng)想使用矩陣進(jìn)行對應(yīng)位置相乘時,可以使用multiply實現(xiàn)??梢?dot運算符負(fù)責(zé)數(shù)組/矩陣的矩陣乘法,multiply負(fù)責(zé)矩陣/數(shù)組的對應(yīng)位置相乘。
到此這篇關(guān)于python multiply()與dot使用示例講解的文章就介紹到這了,更多相關(guān)python multiply()與dot內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Pytorch中accuracy和loss的計算知識點總結(jié)
在本片文章里小編給大家整理的是關(guān)于Pytorch中accuracy和loss的計算相關(guān)知識點內(nèi)容,有需要的朋友們可以學(xué)習(xí)下。2019-09-09
python?包?requests?實現(xiàn)請求操作
這篇文章主要介紹了python?包?requests?實現(xiàn)請求操作,文章介紹內(nèi)容包括帶參數(shù)請求、自定義headers,文章內(nèi)容詳細(xì)具有一定的參考價值,需要的小伙伴可以參考一下2022-04-04
Python實現(xiàn)將DNA序列存儲為tfr文件并讀取流程介紹
為什么要在實驗過程中存儲文件,因為有些算法的內(nèi)容存在一些重復(fù)計算的步驟,這些步驟往往消耗很大一部分時間,在有大量參數(shù)的情況時,需要在多次不同參數(shù)的情況下重復(fù)試驗,因此可以考慮將一些不涉及參數(shù)運算的部分結(jié)果存入文件中2022-09-09

