Python 符号数组表达式

Python 符号数组表达式,python,scipy,sympy,Python,Scipy,Sympy,我想知道是否有一种方法可以象征性地处理数组变量(类似于sympy,但用于数组而不是数字变量)。这样我就可以得到数组表达式,比如 f1 = 3*A[i] + 4*B[i][j] - 7 == 0 或者更高级的东西,比如嵌套数组关系 f2= 3 * A[C[i][j]] == B[i] + 3 通过象征性地处理A,B,我可以使用替换来更改A,B的内容,例如: f1.subs(A=[1,2,3,4],B=[[1,2],[3,4]]) 然后我可以添加f1和f2,等等。从您的标记判断,我假设您主要对

我想知道是否有一种方法可以象征性地处理数组变量(类似于sympy,但用于数组而不是数字变量)。这样我就可以得到数组表达式,比如

f1 = 3*A[i] + 4*B[i][j] - 7 == 0
或者更高级的东西,比如嵌套数组关系

f2= 3 * A[C[i][j]] == B[i] + 3
通过象征性地处理A,B,我可以使用替换来更改A,B的内容,例如:

f1.subs(A=[1,2,3,4],B=[[1,2],[3,4]])

然后我可以添加f1和f2,等等。

从您的标记判断,我假设您主要对Python解决方案感兴趣

有几个项目象征性地构建数组表达式。我建议你看看

  • -构建用于代码生成的数组表达式。主要用于机器学习应用,但是一个相当一般的项目
  • -仅限于矩阵,但处理我们对线性代数的一些特殊知识
  • -从Continuum的员工中成长出来的新项目
如果你愿意走出Python,你可以看看Mathematica中的


根据您的应用程序的不同,还有许多其他项目我没有在这里列出。符号线性代数是一个非常活跃的领域。不过,每个项目的设计往往都考虑到一个特定的应用程序。

您能否编写一个函数,从
i
j
中确定
a[i]
B[i][j]
?如果是这样的话,你也许可以哄骗你去做你的出价。也许可以。不过,我不知道它是否可以嵌套。