用ctypes在Python中获得Clike speed,传递并返回numpy数组

2024-04-25 04:16:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个速度相关的任务,据我所知,它是不可能使用numpy获得类似C的速度。所以我想用C实现一个函数,并在python脚本中调用它。我想将一个(numpy)数组传递给C函数,并将该函数中的一个数组返回给python。你知道吗

正确的解决方案应该是编译我的C函数并在python脚本中使用ctypes来处理它。但我真的不知道怎么把它组合起来。因为它是一个安静的大数组,我想传递和返回它应该以某种方式使用指针,而不是每次新的副本。你知道吗

#define/read in numpy array in python
arr = np.zeros(shape=(100,100))

# define/compile this function in C
def fun(arr):
    #do some stuff, make new arr2
    return(arr2)

arr2 = mylib.fun(arr)
#use arr2 in python

而且我的C语言知识也很差。示例中的arr应该是一个float,返回数组arr2可以是一个整数。你知道吗


Tags: 函数innumpy脚本方式副本数组解决方案