私はCython
を学び、ブートストラップ機能のスピーディーなバージョンを書こうとしています。私のメインループにはまだ黄色い厄介な声明が1つあり、なぜそれが黄色であるのかわかりません。私は本当に助けに感謝します、ありがとう。Cython - ループ内のインデックス割り当てステートメントがまだ黄色ですか?
import numpy as np
cimport numpy as np
from libc.stdlib cimport rand, RAND_MAX
ctypedef np.float64_t FLOAT_t
cpdef FLOAT_t cython_avg(np.ndarray[FLOAT_t, ndim=1] A):
cdef double [:] x = A
cdef double s = 0
cdef unsigned int N = A.shape[0]
for i in xrange(N):
s += x[i]
return s/N
def confidence_interval_mean(np.ndarray[FLOAT_t, ndim=1] sample,int its,int p):
cdef int n = len(sample)
cdef double[:] means = np.zeros(its,dtype=np.float)
cdef np.ndarray[FLOAT_t, ndim=1] s = np.zeros(n,dtype=np.float)
for i in xrange(its):
for j in xrange(n):
s[j] = sample[<int>(rand()/RAND_MAX * n)]
means[i] = cython_avg(s)
return np.percentile(means,[(100-p)/2,(100+p)/2])
2つのfor
ループの内側にある線: