最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

numpy矩陣乘法中的multiply,matmul和dot的使用

 更新時間:2023年02月15日 09:52:29   作者:木盞  
本文主要介紹了numpy矩陣乘法中的multiply,matmul和dot的使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

用numpy做矩陣運算時,少不了用到矩陣乘法。本文幫你迅速區(qū)分multiply, matmul和dot的區(qū)別。

numpy官方文檔中的說明:(想深入了解可以一戳)

multiplyhttps://docs.scipy.org/doc/numpy/reference/generated/numpy.multiply.html

dothttps://docs.scipy.org/doc/numpy/reference/generated/numpy.dot.html

matmul:https://docs.scipy.org/doc/numpy/reference/generated/numpy.matmul.html

1. multiply(矩陣點乘)

先說說更簡單的multiply,如果兩個維度完全一樣的矩陣用multiply做乘法,那么它們只是進行對應(yīng)位置元素之間的乘法,得到一個同樣維度的矩陣輸出。這就是所謂的element-wise product。

import numpy as np
a = np.array([[0,1,2], [1,2,3], [3,4,5]])
b = np.array([[1,1,2], [2,2,1], [1,1,2]])
print(np.multiply(a, b))

輸出:

array([[ 0, 1, 4], [ 2, 4, 3], [ 3, 4, 10]])

看這個栗子,應(yīng)該十分好理解multiply。但是,如果你認為multiply只能對同樣維度的矩陣之間相乘,那你就 t/o-o\ simple了。

如果3x3的矩陣和3x1的矩陣用multiply相乘會怎樣呢?繼續(xù)看栗子:

import numpy as np
a = np.array([[0, 1, 2], [1, 2, 3], [3, 4, 5]])
b = np.array([1, 2, 3])
print(np.multiply(a, b))

輸出:

array([[ 0,  2,  6],
       [ 1,  4,  9],
       [ 3,  8, 15]])

相當于用b依次乘以a的每一行。記住,multiply是滿足交換律的。(a和b互換位置結(jié)果不變)

對于3x3的矩陣a,可以用3x1的矩陣與它相乘,也可以用1x3的矩陣與它相乘。還可以用它乘以一個常數(shù):

import numpy as np
a = np.array([[0, 1, 2], [1, 2, 3], [3, 4, 5]])
print(np.multiply(a, 3))

相當于a中各個元素乘以3。

2. dot(矩陣叉乘)

dot就是矩陣叉乘,MxN矩陣乘以NxC矩陣會得到一個MxC的矩陣。對于2D情況下的dot,等同于matmul,也等同于運算符@。

用一張圖很好解釋:

>>> a = [[1, 0], [0, 1]]
>>> b = [[4, 1], [2, 2]]
>>> np.dot(a, b)
array([[4, 1],
       [2, 2]])
>>> a@b
array([[4, 1],
       [2, 2]])

3. matmul

matmul不支持標量乘法,在2D矩陣乘法中,其效果與dot一樣。

在N維矩陣乘法中(N>=3),體現(xiàn)出與dot不一樣的算法。

>>> a = np.ones([9, 5, 7, 4])
>>> c = np.ones([9, 5, 4, 3])
>>> np.dot(a, c).shape
(9, 5, 7, 9, 5, 3)
>>> np.matmul(a, c).shape
(9, 5, 7, 3)
>>> # n is 7, k is 4, m is 3

總結(jié)

1. dot和multiply對于標量相乘,效果一樣,而matmul不支持標量相乘:

>>>dot(3,3)
>>>9
>>>multiply(3,3)
>>>9
>>>matmul(3,3)
error!

2. 對于2D矩陣相乘,dot和matmul效果一樣, 并且這倆都不滿足交換律。通常建議優(yōu)先使用matmul:

from numpy import *
a = arange(9).reshape(3,3)
b = arange(3).reshape(1,3)
 
print(dot(b,a))
print(matmul(b,a))

輸出:

[[15 18 21]]
[[15 18 21]]

到此這篇關(guān)于numpy矩陣乘法中的multiply,matmul和dot的使用的文章就介紹到這了,更多相關(guān)numpy矩陣乘法中的multiply,matmul和dot內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python隨機生成大小寫字母數(shù)字混合密碼(僅20行代碼)

    python隨機生成大小寫字母數(shù)字混合密碼(僅20行代碼)

    這篇文章主要介紹了python隨機生成大小寫字母數(shù)字混合密碼,主要是利用random模塊隨機生成數(shù)字,大小寫字母,通過循環(huán)次數(shù)來實現(xiàn)此功能,需要的朋友可以參考下
    2020-02-02
  • python requests使用socks5的例子

    python requests使用socks5的例子

    今天小編就為大家分享一篇python requests使用socks5的例子,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • python進階教程之循環(huán)對象

    python進階教程之循環(huán)對象

    這篇文章主要介紹了python進階教程之循環(huán)對象,循環(huán)對象是這樣一個對象,它包含有一個next()方法,這個方法的目的是進行到下一個結(jié)果,需要的朋友可以參考下
    2014-08-08
  • Python使用pyglet庫完整實現(xiàn)漢諾塔游戲流程詳解

    Python使用pyglet庫完整實現(xiàn)漢諾塔游戲流程詳解

    這篇文章主要介紹了Python使用pyglet庫完整實現(xiàn)漢諾塔游戲流程,漢諾塔問題是一個遞歸問題,也可以使用非遞歸法來解決,這個問題不僅是一個數(shù)學和邏輯問題,也是一個很好的教學工具,可以用來教授遞歸、算法和邏輯思考等概念,需要的朋友可以參考下
    2007-02-02
  • python多線程用法實例詳解

    python多線程用法實例詳解

    這篇文章主要介紹了python多線程用法,以實例形式較為詳細的分析了線程同步、隊列等概念及用法技巧,需要的朋友可以參考下
    2015-01-01
  • python實現(xiàn)有效的括號判斷實例代碼

    python實現(xiàn)有效的括號判斷實例代碼

    這篇文章主要給大家介紹了關(guān)于python實現(xiàn)有效的括號判斷的相關(guān)資料,文中通過實例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2022-01-01
  • Python判斷變量是否是None寫法代碼實例

    Python判斷變量是否是None寫法代碼實例

    這篇文章主要介紹了Python判斷變量是否是None寫法代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-10-10
  • 學習python的前途 python掙錢

    學習python的前途 python掙錢

    在本文里我們給大家整理了關(guān)于學習python的前途以及python掙錢的方法整理,有興趣的朋友們閱讀下。
    2019-02-02
  • Python 的 Socket 編程

    Python 的 Socket 編程

    這篇文章最初發(fā)布的時候標題是“Python的WebSocket編程”,坦白來說有點文不對題。我們在這里打算討論的僅僅是常規(guī)的socket編程。盡管 Web Socket 和常規(guī)sockets有點很相似,但又不是同一個東西。那我還是希望這篇文章對你們有點幫助。
    2015-03-03
  • Python常見排序操作示例【字典、列表、指定元素等】

    Python常見排序操作示例【字典、列表、指定元素等】

    這篇文章主要介紹了Python常見排序操作,結(jié)合實例形式總結(jié)分析了Python針對字典、列表及指定元素等常見排序操作實現(xiàn)技巧,需要的朋友可以參考下
    2018-08-08

最新評論

阳谷县| 牟定县| 漠河县| 赤水市| 灯塔市| 塔城市| 丽江市| 景泰县| 汽车| 汽车| 公主岭市| 玉环县| 贵定县| 寿阳县| 容城县| 河间市| 林西县| 巨鹿县| 章丘市| 夹江县| 佛坪县| 乌兰察布市| 松原市| 东至县| 山阴县| 霍城县| 博爱县| 广宁县| 石屏县| 文水县| 合水县| 资阳市| 云和县| 贡嘎县| 仙桃市| 滁州市| 丰台区| 延长县| 喜德县| 永康市| 玉门市|