【发布时间】:2017-09-22 07:43:19
【问题描述】:
您好,我正在尝试将 python 代码转换为 cython 以加快其计算速度。我试图在 cython 代码中从cdef 到cpdef 返回多个数组。基于经典 C,我可以使用指针或元组。我决定使用元组,因为大小不同。我知道下面的代码不起作用,有什么帮助吗?谢谢!
import numpy as np
cimport numpy as np
cdef tuple funA(double[:] X, double[:] Y):
cdef int nX, nY, i
nX = len(X)
nY = len(Y)
for i in range(nX):
X[i] = X[i]*X[i]
for i in range(nY):
Y[i] = Y[i]*Y[i]
return X,Y
cpdef Run(double[:] X, double[:] Y)
cdef Tuple1, Tuple2 = funA(X,Y)
# Do some calculation with Tuple1 and Tuple2
# Example
cdef int i, nTuple1, nTuple2
nTuple1 = len(Tuple1)
for i in range(nTuple1):
Tuple1[i] = Tuple1[i]**2
nTuple2 = len(Tuple2)
for i in range(nTuple2):
Tuple2[i] = Tuple2[i]/2
return Tuple1, Tuple2
【问题讨论】:
标签: cython