【发布时间】:2013-07-05 17:10:23
【问题描述】:
我在sympy 中有以下对称矩阵:
m = sympy.Matrix([[x**2, x**3, x**4],
[x**3, x**5, x**6],
[x**4, x**6, x**7]])
我的目标是获得这个矩阵的上三角形作为一个扁平数组,比如[x**2, x**3, x**4, x**5, x**6, x**7],可以被lambdify处理。
我使用 In numpy 来辅助实现这一点:
f = lambdify((x), sympy.Matrix(np.array(m)[np.triu_indices(m.shape[0])]))
所以f(2.) 给出:
[[ 4. 8. 16. 32. 64. 128.]]
问题是:
-
sympy中是否有本地方法可以做到这一点?
奖金:
- 有没有办法获得
1D-array而不是matrix?
【问题讨论】:
-
您是否有任何具体原因更喜欢 sympy 解决方案而不是 numpy 解决方案?因为否则,与 numpy 相比,sympy 相当慢还是与其他问题无关?
-
是的,我是同一个人......这与另一个问题完全相关。我可以达到great integration performance using Cython, check here...
标签: python arrays numpy matrix sympy