【发布时间】:2019-11-10 10:34:02
【问题描述】:
假设我想要一个像 [x, 2x] 这样的数组向量,然后我想在 x=5 时计算这个数组。所以结果变成 [5 , 10]。
这可以在 matlab 中使用符号工具箱轻松完成。但是,我刚从 matlab 转到 python,建议我使用 Numpy 和 Sympy 来代替 Matlab 强大的矩阵运算。
我尝试了以下代码
import numpy as np
import sympy as sp
x=sp.symbols('x')
a=np.array([x , 2*x])
但是,当 x 为任意数字时,我找不到任何可用于计算“a”的命令。
请有人指导我到正确的路径。
【问题讨论】:
-
Numpy 数组不能很好地与 sympy 对象配合使用(如果您使用带有 numpy 的内置数字类型,它们是最好的)。您应该尝试使用 sympy 数组,它支持
.subs之类的东西。 -
查看最近也使用
lambdify的sympy帖子。但小心点。有许多陷阱。检查a数组的dtype。对象 dtype 数组上的数学是命中或未命中。sympy和numpy不像在 MATLAB 上那样紧密集成。 stackoverflow.com/questions/58772201/… -
稀疏矩阵模块可能有用。