【发布时间】:2014-06-16 22:14:26
【问题描述】:
给我的 lambda 表达式列表(Sympy's lambdify),有些显式依赖于变量 x,有些是常量。我想用 Numpy 数组来评估那些一致的。
当使用 Numpy 数组 x 评估 lambda 表达式时,例如 lambda x: 1.0 + x**2,结果将具有与数组相同的形状。如果表达式碰巧没有明确包含x,例如g = lambda x: 1.0,则只返回一个标量。
import numpy
f = [lambda x: 1.0 + x**2, lambda x: 1.0]
X = numpy.array([1, 2, 3])
print(f[0](X))
print(f[1](X))
返回
[ 2. 5. 10.]
1.0
有没有办法让输出参数的形状保持一致?
【问题讨论】:
-
我知道有更好的方法,但只是为了 lolz:
g = lambda x: 1.0 * x/x -
@user667648:虽然如果
x包含零,那会做坏事。1.0 + x*0更安全。 -
@nneonneo:是的……这对 lolz 来说是件好事。