使用BoostPython将C++数组包装成numpy数组

Using Boost Python to wrap C++ arrays into numpy arrays

本文关键字:数组 包装 numpy C++ BoostPython 使用      更新时间:2023-10-16

假设我有一个C++结构

struct A {
  int* a; 
}

其中int*a指向一个数组。我如何将其公开给Python,它有一个作为numpy数组的dtype = 'int'

从您的问题中还不清楚boost::python与此有什么关系。但是,如果您只想将数组作为numpy数组公开给python,则可以使用PyArray_SimpleNewFromData。

如果要使用boost::python公开整个A结构,并将"A"作为其成员,请使用boost::python语法作为属性,并使用上一个函数返回结构的数组视图。请注意,您需要知道数组的大小才能将其公开给Python。