Используя pybind11 C++ API и python3, как мы можем правильно создать пустой массив объектов (то есть строк Unicode) в реализации C++ и вернуть его обратно в python? Какова точная структура памяти базового массива данных, переданного в pybind11::array()? Как именно нам нужно управлять памятью, т.е. удалять/освобождать?
Обратите внимание, что это необходимо, потому что мы хотим использовать этот массив строк в сочетании с другими массивами POD при создании pandas DataFrame.
pybind11
. Но массивыnumpy
можно создать с помощью функцииnumpy C API
. Макеты массивов в основном одинаковы, атрибуты плюс буфер данных. Для типа объекта буфер данных содержит указатели на объекты в другом месте памяти. С типомunicode
этот буфер фактически содержит строки (дополненные до указанной длины). Возможно, вам придется изучитьnumpy
документы. - person hpaulj   schedule 16.07.2017