Python numpy数组求值表示公式

Python numpy数组求值表示公式,python,numpy,Python,Numpy,我想用np数组计算符号表达式 例如: import numpy as np a = np.array([1]*4) b = np.array([2]*4) res = repr(a) + ' + ' + repr(b) value = eval(res) 错误: Traceback (most recent call last): File "<stdin>", line 1, in <module> File "<string>", line 1,

我想用np数组计算符号表达式

例如:

import numpy as np
a = np.array([1]*4)
b = np.array([2]*4)
res = repr(a) + ' + ' + repr(b)
value = eval(res)
错误:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<string>", line 1, in <module>
NameError: name 'array' is not defined
编辑:

为了解决这个问题,在导入模块中添加数组定义

from numpy import array

表示形式为:
数组([1,1,1,1])
。因此,我们需要导入一个
数组
定义。因此,以下措施应该有效:

from numpy import array
a = array([1] * 4)
b = array([2] * 4)
res = repr(a) + ' + ' + repr(b)
eval(res)
结果:

array([3, 3, 3, 3])

你到底想要实现什么
eval
是邪恶的。当从一个问题中复制n-paste时,我有时需要在交互会话中添加一个
array=np.array
。@EricDuminil:我有一个符号表达式,我想要一个方法evaluate,它将np.array应用到我表达式的每个变量上。非常感谢您的快速回答,在这个链接中也是同样的答案:但是我不明白数组定义的问题
eval
是危险的。我不知道是否有更好的方法,例如使用
symphy
。我知道symphy,但我需要符号表达式图来制作其他更复杂的东西,如无功能(GPU、OpenMP等),因此我宁愿不使用整个模块来构建表达式树
array([3, 3, 3, 3])