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

