Я придумал, как это сделать. Я добавил функцию шаблона в оболочку pybind, которая возвращает массив байтов numpy:
// Convert the object contents to a numpy byte array
template <class T>
c_pyarray GetBytes(T& params) {
auto size = sizeof(T);
auto output = py::array_t<uint8_t>(size);
uint8_t* obase_ptr = reinterpret_cast<uint8_t*>(output.request().ptr);
uint8_t* thisPtr = (uint8_t*)¶ms;
copy(thisPtr, thisPtr + size, obase_ptr);
return output;
}