在Cython中分配字节数组并将其传递回Python的最佳方法是什么?



我有一个像cdef generate_data(size)这样的Cython函数,我想:

  • 初始化长度为size的字节数组
  • 调用external (C)函数填充数组使用数组ptr和size
  • 以Python可理解的形式返回数组(bytearray, bytes,您的建议)

我在互联网上看到了很多方法,但我正在寻找最好的/推荐的方法来做这件事在我的简单情况下。我想:

  • 避免内存重新分配
  • 避免使用numpy
  • 最好使用在Python 3和2.7中工作的东西,尽管2.7的解决方案已经足够好了。

我使用的是Cython 0.20

对于内存分配,我已经介绍过了。

之后,只需采取一个指针(可能在data属性,如果你使用cpython.array.array像我推荐的),并传递下去。您可以返回cpython.array.array类型,它将变成一个Python数组。

相关内容

  • 没有找到相关文章

最新更新