change dimensions in vector_to_numpy_array

This commit is contained in:
Hannes Signer 2025-01-09 21:00:01 +01:00
parent 4169cf8a20
commit 80165db6d0

View File

@ -91,21 +91,24 @@ int Python_Keras_load_model(std::string model, std::string model_reactive,
* @param field 2D-Matrix with the content of a Field object
* @return Numpy representation of the input vector
*/
PyObject *vector_to_numpy_array(const std::vector<std::vector<double>> &field) {
npy_intp dims[2] = {static_cast<npy_intp>(field[0].size()),
static_cast<npy_intp>(field.size())};
PyObject* vector_to_numpy_array(const std::vector<std::vector<double>>& field) {
npy_intp dims[2] = {static_cast<npy_intp>(field.size()), // Zeilenanzahl
static_cast<npy_intp>(field[0].size())}; // Spaltenanzahl
PyObject *np_array = PyArray_SimpleNew(2, dims, NPY_FLOAT64);
double *data = static_cast<double *>(PyArray_DATA((PyArrayObject *)np_array));
// write field data to numpy array
PyObject* np_array = PyArray_SimpleNew(2, dims, NPY_FLOAT64);
double* data = static_cast<double*>(PyArray_DATA((PyArrayObject*)np_array));
// Schreibe die Daten in das Numpy-Array (korrekte Reihenfolge)
for (size_t i = 0; i < field.size(); ++i) {
for (size_t j = 0; j < field[i].size(); ++j) {
data[j * field.size() + i] = field[i][j];
data[i * field[0].size() + j] = field[i][j]; // Korrekte Indizes
}
}
return np_array;
}
/**
* @brief Converts a Pyton matrix object to a std::vector vector
* @param py_matrix Pyobject that must be a 2D matrix