Итак, я пытаюсь сделать следующее:
- Вызов функции в C с массивом или NumPy Массив в качестве аргумента
- Сделайте что-нибудь к содержимому массива в Cython / Python, как поэлементное умножение на 2
- Вернуть соответствующий тип данных обратно в C
Моя единственная проблема заключается в том, что я надеваю Не знаю, как создать NumPy Array в C или вернуть массив в моей функции cdef. Я, конечно, пробовал гуглить и читать по всему inte rnet, но я просто не нашел ничего действительно полезного (или не понял, что было предложено). Я попробовал просмотр памяти, но у меня тоже не получилось:
cdef public int[:,:] c_array_to_numpy(int[:,:] input):
cdef int [:,:] memview = input
cdef int[2][3] output
for x in range(memview.shape[0]):
for y in range(memview.shape[1]):
memview[x, y] *= 5
output[x][y] = memview[x][y]
return output
и в C это должно выглядеть примерно так
int test[2][3] = {{3, 7, 4}, {8, 5, 9}};
c_array_to_numpy(test);
for (int i = 0; i < 2; i++)
{
for (int j = 0; j < 3; j++)
{
printf("%i ", test[i][j]);
}
printf("\n");
}