【发布时间】:2020-04-07 04:14:58
【问题描述】:
我写了一段代码,它从均匀分布中抽取随机数,对它们求和,直到达到一个数字 L=x。 我曾尝试使用 Cython 对其进行优化,但我想就如何进一步优化它提出任何建议,因为它会被称为大 L 值,因此需要很长时间。 这是到目前为止我在 Jupyter 中编写的代码
%%cython
import numpy as np
cimport numpy
import numpy.random
def f(int L):
cdef double r=0
cdef int i=0
cdef float theta
while r<=L:
theta=np.random.uniform(0, 2*np.pi, size = None)
r+=np.cos(theta)
i+=1
return i
我想尽可能加快速度
【问题讨论】:
-
你知道
np.cos(theta)有一半是负数吗?
标签: python optimization jupyter cython