首页 > 解决方案 > 如何使用numpy返回系列计算?

问题描述

我正在尝试解决一个问题,其中对于标量变量x( ∈(0,2) ) 和正整数N,我必须计算并返回下图中的符号。我是一日 np 胎儿,我遇到了问题。你能看看我的代码吗?

提示:使用np.arange, np.sum,np.multiply.accumulate

方程

import numpy as np
def mysin(x,N):
    k=1
    arr=np.arange(k,N+1)
    for i in arr:
        i=(-1**(k-1))*(x**(2*k-1))/np.math.factorial(2*k-1)
    arr=np.sum(i)
    return arr

raise NotImplementedError()

标签: pythonnumpy

解决方案


您不必显式地遍历幂数组,如果您将一个数字提高到一个数组的幂,那么 Numpy 将明智地执行该操作元素。阶乘也可以在 Numpy 内部计算,使用np.multiply.accumulate函数然后选择每个第二个元素,因为阶乘是(2k - 1)!

k = np.arange(1, N+1)
factorial = np.multiply.accumulate(np.arange(1, 2*N).astype(float))[::2]
return np.sum((-1)**(k-1) * x**(2*k-1) / factorial)

推荐阅读