python 矩陣乘法

2022-02-05 08:32:48 字數 927 閱讀 3363

1.列表作為資料結構

def matrixproduct(a, b):

temp2 =

for i in range(len(a)):

temp1 =

for j in range(len(b[0])):

total = 0

for k in range(len(a[0])):

total += a[i][k] * b[k][j]

return temp2

print(matrixproduct([[1,0],[0,0]], [[0,1],[1,0]]))

時間複雜度太高o(n^3)

以後再想辦法用矩陣快速冪來優化,降低時間複雜度

2.numpy中ndarray作為資料結構

(注意numpy陣列的a*b指的並不是矩陣乘法,a.dot(b)或者numpy.dot(a,b))

import numpy as np

def matrixproduct(a, b):

a=np.array(a)

b=np.array(b)

c=np.dot(a,b)

return c.tolist()

print(matrixproduct([[1,0],[0,0]], [[0,1],[1,0]]))

3.numpy中mat作為資料結構

這種矩陣格式就可以a*b了

import numpy as np

def matrixproduct(a, b):

a=np.mat(a)

b=np.mat(b)

c=a*b

return c.tolist()

print(matrixproduct([[1,0],[0,0]], [[0,1],[1,0]]))

Python 矩陣乘法

np.dot a,b 對於二維矩陣,計算真正意義上的矩陣乘積,同線性代數中矩陣乘法的定義。對於一維矩陣,計算兩者的內積。見如下python import numpy as np 2 d array 2 x 3 two dim matrix one np.array 1,2,3 4,5,6 2 d a...

Python演算法 矩陣鏈乘法

題目解析參考 動態規劃 矩陣鏈乘法 矩陣乘法是乙個滿足結合律的運算。顯然,對於矩陣a b c來說,ab c 與 a bc 是等價的,我們可以根據自己的心情選擇任意的運算順序,總之,結果都是一樣的。糟糕的是,對計算機來說可不是這麼回事,若我們假定矩陣 a 10,20 b 20,30 c 30,40 那...

矩陣乘法 矩陣乘法的基本實現

求解關於兩個矩陣的乘積 參考線性代數裡面的兩個矩陣相乘的規則,我這裡不再贅述,詳情附上了乙個鏈結,我的程式設計也是用了裡面的例子 這裡寫鏈結內容 具體的過程我會在 片裡面加上注釋 矩陣乘法 author seen 2015 09 18 include using namespace std int ...