小编Pyt*_*ner的帖子

在Python中向量化重复数学函数

我有这种形式的数学函数,$f(x)=\sum_{j=0}^N x^j * \sin(j*x)$希望在中高效地进行计算Python。N约为100。对于巨大矩阵的所有条目x,该函数f评估了数千次,因此我想提高性能(分析器表明f的计算大部分时间都花在了计算上)。为了避免在函数f的定义中出现循环,我写了:

def f(x)
    J=np.arange(0,N+1)
    return sum(x**J*np.sin(j*x))
Run Code Online (Sandbox Code Playgroud)

问题是,如果要对矩阵的所有条目求值该函数,则需要先使用numpy.vectorize,但据我所知,这不一定比for循环快。

有没有一种有效的方法来执行这种类型的计算?

python numpy vectorization mathematical-expressions

2
推荐指数
1
解决办法
279
查看次数