ฉันพยายามเร่งคำตอบที่นี่โดยใช้ Cython ฉันพยายามรวบรวมรหัส (หลังจากทำการcygwinccompiler.pyแฮ็คอธิบายที่นี่ ) แต่ได้รับfatal error: numpy/arrayobject.h: No such file or directory...compilation terminatedข้อผิดพลาด ใครช่วยบอกฉันได้ไหมว่ามันเป็นปัญหากับรหัสของฉันหรือความซับซ้อนลึกลับกับ Cython
ด้านล่างนี้คือรหัสของฉัน
import numpy as np
import scipy as sp
cimport numpy as np
cimport cython
cdef inline np.ndarray[np.int, ndim=1] fbincount(np.ndarray[np.int_t, ndim=1] x):
    cdef int m = np.amax(x)+1
    cdef int n = x.size
    cdef unsigned int i
    cdef np.ndarray[np.int_t, ndim=1] c = np.zeros(m, dtype=np.int)
    for i in xrange(n):
        c[<unsigned int>x[i]] += 1
    return c
cdef packed struct Point:
    np.float64_t f0, f1
@cython.boundscheck(False)
def sparsemaker(np.ndarray[np.float_t, ndim=2] X not None,
                np.ndarray[np.float_t, ndim=2] Y not None,
                np.ndarray[np.float_t, ndim=2] Z not None):
    cdef np.ndarray[np.float64_t, ndim=1] counts, factor
    cdef np.ndarray[np.int_t, ndim=1] row, col, repeats
    cdef np.ndarray[Point] indices
    cdef int x_, y_
    _, row = np.unique(X, return_inverse=True); x_ = _.size
    _, col = np.unique(Y, return_inverse=True); y_ = _.size
    indices = np.rec.fromarrays([row,col])
    _, repeats = np.unique(indices, return_inverse=True)
    counts = 1. / fbincount(repeats)
    Z.flat *= counts.take(repeats)
    return sp.sparse.csr_matrix((Z.flat,(row,col)), shape=(x_, y_)).toarray()