python - 如何使用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()
解决方案
您不必显式地遍历幂数组,如果您将一个数字提高到一个数组的幂,那么 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)
推荐阅读
- reactjs - 如何监控流程完成并将状态推送到 UI?
- c++ - 嵌套类的成员是封闭类的成员吗?
- python - 无法在 Python Flask 应用程序中构建 Docker 容器映像
- android-jetpack-compose - 在片段中使用 Compose 的问题
- command - 如何修复 Putty 上的命令提示符中的 Error-404?
- sql-server - 代码:0xC0029151。进程退出代码为“-1073740791”,而预期为“0”
- javascript - Firefox 和 Safari 不在 Service Worker 请求中发送自定义 http 标头
- go - 从中获得总和有很多
- c - 如何使用 lua c api 创建 lua 协程?
- google-sheets - 如何创建一个图表,将数值与谷歌表格中的特定字段进行比较?