我可以用numpy数组替代IndexedBase吗

时间:2018-07-16 10:06:23

标签: numpy sympy

我可以用numpy数组替换IndexedBase以获得新的sympy表达式吗?像这样:

import numpy as np
import sympy as sy

A = sy.IndexedBase('A', shape=(5))
k = sy.IndexedBase('k', shape=(5))
i = sy.symbols('i',cls=sy.Idx)

expr1 = sy.Sum(A[i]/sy.exp(sy.I * k[i]),(i,1,5))

kz = np.arange(1,5)

expr2 = expr1.subs(k[:],kz[:])

最后一行=错误。

谢谢!

1 个答案:

答案 0 :(得分:1)

是的,您可以:

In [6]: expr2 = expr1.replace(k, kz)

In [7]: expr2
Out[7]: 
  5                              
 ___                             
 ╲                               
  ╲    -ⅈ⋅[1, 2, 3, 4, 5][i]     
  ╱   ℯ                     ⋅A[i]
 ╱                               
 ‾‾‾                             
i = 1 

请注意,求和范围是错误的,Python数组的偏移量为零。