Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 在python Symphy中,如何将外部python函数应用于Symphy矩阵的每个元素?_Python 3.x_Sympy - Fatal编程技术网

Python 3.x 在python Symphy中,如何将外部python函数应用于Symphy矩阵的每个元素?

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

更具体地说,我想应用以下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)]])