Ⅰ python實現矩陣乘法的方法
python實現矩陣乘法的方法
本文實例講述了python實現矩陣乘法的方法。分享給大家供大家參考。
具體實現方法如下:
def matrixMul(A, B):
res = [[0] * len(B[0]) for i in range(len(A))]
for i in range(len(A)):
for j in range(len(B[0])):
for k in range(len(B)):
res[i][j] += A[i][k] * B[k][j]
return res
def matrixMul2(A, B):
return [[sum(a * b for a, b in zip(a, b)) for b in zip(*B)] for a in A]
a = [[1,2], [3,4], [5,6], [7,8]]
b = [[1,2,3,4], [5,6,7,8]]
print matrixMul(a,b)
print matrixMul(b,a)
print "-"*90
print matrixMul2(a,b)
print matrixMul2(b,a)
print "-"*90
from numpy import dot
print map(list,dot(a,b))
print map(list,dot(b,a))
#Out:
#[[11, 14, 17, 20], [23, 30, 37, 44], [35, 46, 57, 68], [47, 62, 77, 92]]
#[[50, 60], [114, 140]]
#------------------------------------------------------------------------
#[[11, 14, 17, 20], [23, 30, 37, 44], [35, 46, 57, 68], [47, 62, 77, 92]]
#[[50, 60], [114, 140]]
#------------------------------------------------------------------------
#[[11, 14, 17, 20], [23, 30, 37, 44], [35, 46, 57, 68], [47, 62, 77, 92]]
#[[50, 60], [114, 140]]
希望本文所述對大家的Python程序設計有所幫助。
Ⅱ python矩陣乘法是什麼
python實現矩陣乘法的方法
def matrixMul(A, B):
res = [[0] * len(B[0]) for i in range(len(A))]
for i in range(len(A)):
for j in range(len(B[0])):
for k in range(len(B)):
res[i][j] += A[i][k] * B[k][j]
return res
def matrixMul2(A, B):
return [[sum(a * b for a, b in zip(a, b)) for b in zip(*B)] for a in A]
a = [[1,2], [3,4], [5,6], [7,8]]
b = [[1,2,3,4], [5,6,7,8]]
print matrixMul(a,b)
print matrixMul(b,a)
乘積形式
除了上述的矩陣乘法以外,還有其他一些特殊的「乘積」形式被定義在矩陣上,值得注意的是,當提及「矩陣相乘」或者「矩陣乘法」的時候,並不是指代這些特殊的乘積形式,而是定義中所描述的矩陣乘法。在描述這些特殊乘積時,使用這些運算的專用名稱和符號來避免表述歧義。
Ⅲ Python中怎樣計算矩陣按逐元素進行相乘
示例,供參考。
mat1=[[1,2,3],[4,5,6],[7,8,9]]
m=1
foriinrange(3):
forjinrange(3):
m=m*mat1[i][j]
print(m)
Ⅳ Python中怎樣計算矩陣按逐元素進行相乘
matlab的數組是以矩陣形式存儲的,直接輸入兩個矩陣,做矩陣乘法的時候乘號寫成.*就可以了。
Ⅳ Python中怎樣計算矩陣按逐元素進行相乘
matlab的數組是以矩陣形式存儲的,直接輸入兩個矩陣,做矩陣乘法的時候乘號寫成.*就可以了。
Ⅵ python編程幾乘以幾結果
數組和矩陣對應位置相乘,輸出結果與相乘數組/矩陣的大小一致.
例如:
數組場景:
A =np.arrange(1,5).reshape(2,2)
即 A = array([[1,2][3,4]])B =np.arrange(1,5).reshape(2,2)即 B = array([[0,1],
[2,3]])
Ⅶ numpy的矩陣乘法
你的問題是否可以轉化為對這個式子求導(x+1)/x*2 (x+1)除以x的平方
對分子求導:對存在x的項求導保留x項的倍數,常數求導為0 所以對分子求導結果為1
對分母求導:因為分母為x*2 所以導數為2x (若對x*n x的n次方求導,則為nx*(n-1) n倍的x的n-1次方)
Ⅷ 用python的numpy創建一個矩陣
使用numpy創建矩陣有2種方法,一種是使用numpy庫的matrix直接創建,另一種則是使用array來創建。首先載入numpy庫,然後分別用上面說的2種方法來分別構建一個4×3的矩陣,如圖
注意事項
[1]在高等數學或者線性代數等已經學過了當後面的矩陣的行數等於前面矩陣的列數時,2個矩陣才可以相乘
[2]Hadamard指的是2個m×n的矩陣相乘,結果仍然是m×n的矩陣,結果為對應元素的乘積
[3]單位矩陣是特殊的對角矩陣,零(1)矩陣是指元素全部是0(1)的矩陣
[4]矩陣的第一行是從0開始編號的,python中的各種編號基本上都是從0開始的
Ⅸ 在python3里怎麼實現兩個矩陣相乘
def mmult(a,b):
zip_b = zip(*b)
return [[sum(ele_a*ele_b for ele_a, ele_b in zip(row_a, col_b))
for col_b in zip_b] for row_a in a]
x = [[1,2,3],[4,5,6],[7,8,9],[10,11,12]]
y = [[1,2],[1,2],[3,4]]
print(mmult(x,y))
或者可以直接用numpy
import numpy as np # I want to check my solution with numpy
mx = np.matrix(x)
my = np.matrix(y)
print(mx * my)
Ⅹ 在python中怎麼使用旋轉矩陣實現矩陣的相乘,怎麼表達出旋轉矩陣
矩陣相乘很簡單,你甚至可以自己寫一個,現成的推薦 http://www.numpy.org
三維空間中旋轉的表示:四元數,旋轉矩陣,旋轉向量,角軸,歐拉角
python中貌似沒有Eigen那麼方便的庫,可以使用quaternion,裡面有相應的方法提供他們之間的轉換