繁体   English   中英

用sympy中的值替换列表会产生意外结果

[英]Substituting values in sympy for a list gives the unexpected result

我要执行以下操作,在该操作中输入索引,并吐出所需的值。 但是,当我给它赋值时,它给了我意外的结果。

import sympy as sy
import numpy as np
i = sy.Symbol('i', integer=True)
j = sy.Symbol('j', integer=True)
a = sy.IndexedBase('a')
y=a[i, j]**2+3
y.subs({a:np.array([[1,2,3,4,5,6,7]]),i:0,j:4})

我希望答案为5 ** 2 + 3 = 28,但这给了我[0,4] ** 2 + 3。

IndexedBase类型似乎不是为访问数据而实现的(而是出于表示目的)。 请参见http://docs.sympy.org/latest/modules/tensor/indexed.html以下语句:

该类的主要目的是允许方便地创建Indexed类的对象。 IndexedBase的getitem方法返回Indexed的实例。

也许您可以使用Matrix类型实现所需的功能?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM