我正在用x数组来评估任意表达式,例如3*x**2 + 4.这通常会产生一个x形状的数组.但是,如果表达式只是一个常量,它将返回一个标量.在没有明确检查形状的情况下,确保其具有x形状的最佳方法是什么?乘以numpy.ones(x.shape)可以正常工作,但我认为这会使用不必要的计算.
编辑:要清楚,我不只是希望它是一个大小为1的数组,我希望它与X的形状和大小相同.我正在使用NumExpr评估一个字符串,它可以包含x的任意函数:
x = numpy.linspace(min, max, num)
y = numexpr.evaluate(expr, {'x': x}, {})
Run Code Online (Sandbox Code Playgroud)
我想得到一个y值的数组,可以通过matplotlib对x进行绘制.目前我这样做,工作正常:
y = numpy.ones(x.size) * y
Run Code Online (Sandbox Code Playgroud)
但是我担心这对于大尺寸来说是浪费.有没有更好的办法?