Python 3.x 在python Symphy中,如何将外部python函数应用于Symphy矩阵的每个元素?
更具体地说,我想应用以下sigmoid函数:Python 3.x 在python Symphy中,如何将外部python函数应用于Symphy矩阵的每个元素?,python-3.x,sympy,Python 3.x,Sympy,更具体地说,我想应用以下sigmoid函数: def sigmoid(x): return 1 / (1 + m.exp(-x)) 以下2x2辛矩阵的每个元素: Matrix([[1,3],[2,4]]) Matrix([ [1, 3], [2, 4]]) 这样,在将sigmoid函数应用到矩阵上时,我将得到一个新的2x2矩阵,其中矩阵的每个元素都应用了sigmoid。例如: Matrix([[ sigmoid(1), sigmoid(3) ],[ sigmoid(2), sigmoid
def sigmoid(x):
return 1 / (1 + m.exp(-x))
以下2x2辛矩阵的每个元素:
Matrix([[1,3],[2,4]])
Matrix([
[1, 3],
[2, 4]])
这样,在将sigmoid函数应用到矩阵上时,我将得到一个新的2x2矩阵,其中矩阵的每个元素都应用了sigmoid。例如:
Matrix([[ sigmoid(1), sigmoid(3) ],[ sigmoid(2), sigmoid(4) ]])
如何做到这一点
>>> M.applyfunc(sigmoid)
Matrix([
[1/(exp(-1) + 1), 1/(exp(-3) + 1)],
[1/(exp(-2) + 1), 1/(exp(-4) + 1)]])
这是在sigmoid
函数中使用Symphy的exp
。如果m.exp
表示您正在从math
导入exp
,则结果将不好看,如果矩阵包含符号,则会出错
如果您确实希望函数中包含
sigmoid(1)
等等,那么sigmoid
需要是一个不求值的SymPy函数
class sigmoid(Function):
pass
有了这个,
>>> M.applyfunc(sigmoid)
Matrix([
[sigmoid(1), sigmoid(3)],
[sigmoid(2), sigmoid(4)]])