我想从 a 中得到一个给定两个值的矩阵ndarray
,ufunc
例如:
degs = numpy.array(range(5))
pnts = numpy.array([0.0, 0.1, 0.2])
values = scipy.special.eval_chebyt(degs, pnts)
上面的代码不起作用(它给出了 aValueError
因为它尝试广播两个数组并且由于它们具有不同的形状而失败:(5,)和(3,));我想获得一个值矩阵,其中行对应于度数,列对应于多项式被评估的点(反之亦然,没关系)。
目前我的解决方法是简单地使用for
-loop:
values = numpy.zeros((5,3))
for j in range(5):
values[j] = scipy.special.eval_chebyt(j, pnts)
有没有办法做到这一点?一般来说,如果您有类似 array_like 的参数,您如何让ufunc
用户知道您想要一个-n
维数组?n
我知道numpy.vectorize
,但这似乎既不比简单的循环更快也不优雅for
(而且我什至不确定你是否可以将它应用于现有的ufunc
)。
更新ufunc
接收 3 个或更多参数的 's 呢?尝试outer
方法给出了一个ValueError: outer product only supported for binary functions
. 例如,scipy.special.eval_jacobi
。