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

时间:2014-05-25 17:12:19

标签: python arrays cython

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

  • 初始化长度为size
  • 的字节数组
  • 调用外部(C)函数以使用数组ptr和size
  • 填充数组
  • 将数组返回为Python可理解的内容(bytearray,bytes,your recommendations)

我在互联网上看到了很多方法,但我正在寻找在我的简单案例中做到这一点的最好/推荐方法。我想:

  • 避免重新分配内存
  • 避免使用numpy
  • 理想情况下使用适用于Python 3和2.7的东西,尽管2.7解决方案已经足够了。

我正在使用Cython 0.20。

1 个答案:

答案 0 :(得分:1)

用于分配内存I have you covered

之后,只需取一个指针(如果您使用data,可能在cpython.array.array属性)并传递它。您可以返回cpython.array.array类型,它将成为Python数组。