相关疑难解决方法(0)

用cython简单包装C代码

我有很多C函数,我想从python中调用它们.cython似乎是要走的路,但我无法真正找到一个如何做到这一点的例子.我的C函数看起来像这样:

void calculate_daily ( char *db_name, int grid_id, int year,
                       double *dtmp, double *dtmn, double *dtmx, 
                       double *dprec, double *ddtr, double *dayl, 
                       double *dpet, double *dpar ) ;
Run Code Online (Sandbox Code Playgroud)

我想要做的就是指定前三个参数(一个字符串和两个整数),并恢复8个numpy数组(或python列表.所有双数组都有N个元素).我的代码假设指针指向已经分配的内存块.此外,生成的C代码应该链接到一些外部库.

python numpy cython

43
推荐指数
2
解决办法
2万
查看次数

性能比较Fortran,Numpy,Cython和Numexpr

我有以下功能:

def get_denom(n_comp,qs,x,cp,cs):
'''
len(n_comp) = 1 # number of proteins
len(cp) = n_comp # protein concentration
len(qp) = n_comp # protein capacity
len(x) = 3*n_comp + 1 # fit parameters
len(cs) = 1

'''
    k = x[0:n_comp]
    sigma = x[n_comp:2*n_comp]
    z = x[2*n_comp:3*n_comp]

    a = (sigma + z)*( k*(qs/cs)**(z-1) )*cp
    denom = np.sum(a) + cs
    return denom
Run Code Online (Sandbox Code Playgroud)

我将它与Fortran实现(我的第一个Fortran函数)进行比较:

subroutine get_denom (qs,x,cp,cs,n_comp,denom)

! Calculates the denominator in the SMA model (Brooks and Cramer 1992)
! The function is called at …
Run Code Online (Sandbox Code Playgroud)

python fortran numpy cython

8
推荐指数
1
解决办法
3617
查看次数

标签 统计

cython ×2

numpy ×2

python ×2

fortran ×1