Я пытаюсь передать вектор двойников, который я сгенерировал в моем C++
коде, в массив python
numpy. Я хочу выполнить некоторую обработку в потоке в python
и хочу использовать некоторые объекты python, как только я заполню массив numpy. Одна из самых больших вещей, которые я хочу сделать, это уметь строить сюжеты, а С++ немного неуклюжие, когда дело доходит до этого. Также я хочу иметь возможность использовать статистическую мощность Python.
Хотя я не очень понимаю, как это сделать. Я потратил много времени на изучение документации API Python C. Я столкнулся с функцией PyArray_SimpleNewFromData, которая, видимо, может сделать трюк. Я все еще очень неясен в отношении общей настройки кода. Я создаю некоторые очень простые тестовые примеры, чтобы помочь мне понять этот процесс. Я сгенерировал следующий код как отдельный пустой проект в Visual Studio express 2012. Я вызываю этот файл Project1
#include <Python.h>
#include "C:/Python27/Lib/site-packages/numpy/core/include/numpy/arrayobject.h"
PyObject * testCreatArray()
{
float fArray[5] = {0,1,2,3,4};
npy_intp m = 5;
PyObject * c = PyArray_SimpleNewFromData(1,&m,PyArray_FLOAT,fArray);
return c;
}
Моя цель - прочитать PyObject в Python. Я застрял, потому что не знаю, как ссылаться на этот модуль на Python. В частности, как мне импортировать этот проект из Python, я попытался выполнить импорт Project1 из пути к проекту в python, но не смог. Как только я понимаю этот базовый случай, моя цель - выяснить способ передачи векторного контейнера, который я вычисляю в своей основной функции на Python. Я также не знаю, как это сделать.
Любые эксперты, которые могут помочь мне в этом, или, может быть, опубликуют простой, хорошо содержащий пример код, который читает и заполняет массив numpy из простого вектора С++, я буду благодарен. Большое спасибо заранее.