比如像图片这样的矩阵,构造好之后传输数据进行批量计算。
目前只会基础的sympy和numpy,如果有朋友知道学哪一个模块可以做出来也会采纳答案!十分感谢
比如像图片这样的矩阵,构造好之后传输数据进行批量计算。
python未知数的矩阵运算_python如何进行矩阵运算
import numpy as np
加法
思路
参考矩阵加法公式
先判断两矩阵能否相加
遍历两个矩阵
各相同位置元素相加
实现
def add(a, b):
if(a.shape != b.shape):
print('两矩阵不为同型矩阵!')
return
c = np.zeros(a.shape)
for i in range(a.shape[0]):
for j in range(a.shape[1]):
c[i][j] = a[i][j] + b[i][j]
return c
数乘
思路
参考矩阵数乘公式
遍历矩阵
相乘
实现
def numSub(a, b):
c = np.zeros(a.shape)
for i in range(a.shape[0]):
for j in range(a.shape[1]):
c[i][j] = a[i][j] * b
return c
Hadamard乘积
思路
参考Hadamard乘积公式
与矩阵加法思路一致
实现
# 矩阵对应元素相乘 Hadamard乘积
def had(a,b):
if(a.shape != b.shape):
print('两矩阵不为同型矩阵!')
return
c = np.zeros(a.shape)
for i in range(c.shape[0]):
for j in range(c.shape[1]):
c[i][j] = a[i][j] * b[i][j]
点积
思路
参考矩阵点积公式
理解公式:乘积C的第m行第n列的元素等于矩阵A的第m行的元素与矩阵B的第n列对应元素乘积之和。
判断两矩阵是否为同型矩阵
构建m行n列的结果矩阵
向结果矩阵中赋值:
(1). 遍历结果矩阵
(2). 求出矩阵A对应行与矩阵B对应列的元素乘积之和:
根据公式,A矩阵的行与B矩阵的列均确定,因此根据累加条件遍历两个矩阵来确定另一个索引位置,并累加求和
实现
# 矩阵相乘
def mul(a,b):
if(a.shape[1] != b.shape[0]):
print('两矩阵不能相乘')
return
m = a.shape[0]
n = b.shape[1]
s = a.shape[1]
c = np.zeros((m,n))
for i in range(m):
for j in range(n):
for k in range(s):
c[i][j] += a[i][k]*b[k][j]
pass
pass
return c