sto*_*120 10 symbols repeat sympy
我试图在“sympy”中定义很多变量以进行符号处理。
import sympy as sp
b_0 = sp.symbols('b_0')
b_1 = sp.symbols('b_1')
...
b_X = sp.symbols('b_X')
Run Code Online (Sandbox Code Playgroud)
依此类推,X从 1 到 1000。
有简单的方法吗?
小智 10
有以下几种选择:
>>> sp.symbols('b_0:10')
(b_0, b_1, b_2, b_3, b_4, b_5, b_6, b_7, b_8, b_9)
Run Code Online (Sandbox Code Playgroud)
或者,使用格式化字符串,
>>> n = 10
>>> sp.symbols('b_0:{}'.format(n))
(b_0, b_1, b_2, b_3, b_4, b_5, b_6, b_7, b_8, b_9)
Run Code Online (Sandbox Code Playgroud)
它们返回一个符号元组。还有更多格式选项:请参阅symbols文档。
还有一个函数可以生成 NumPy 符号数组:
>>> sp.symarray('b', 10)
array([b_0, b_1, b_2, b_3, b_4, b_5, b_6, b_7, b_8, b_9], dtype=object)
Run Code Online (Sandbox Code Playgroud)
所有这些例子都是为了分配给某些东西。例如,b = sp.symbols('b_0:10')将符号元组分配给 b,因此它们可以作为 等进行访问b[0], b[1]。SymPy 符号不能通过表示它们的字符串进行访问,例如"b_0" or "b_1"。
最后,还有索引对象,以防您需要未确定大小的符号数组:当您使用作为 IndexedBase 的A[n]符号时,会动态创建索引对象。A