accès aux éléments d'un numpy array 2d depuis du code C par double indice
Bonjour,
j'ai une petite fonction C que j'utilise depuis python:
Code:
1 2 3 4 5 6 7 8 9 10
|
#include <stdio.h>
void foo_func(long* x, int length)
{
int i;
for (i = 0; i < length; i++) {
x[i] = i*i;
}
} |
Dans mon script python, je passe le pointeur d'un numpy.array en argument de la fonction, ce qui me permet de modifier depuis le code c les valeurs de mon array.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import numpy as np
from ctypes import *
mpa_lib = np.ctypeslib.load_library('mpa', '/home/.../mpa.so')
array_1d_int = np.ctypeslib.ndpointer(dtype='int', ndim=1, flags='CONTIGUOUS')
mpa_lib.foo_func.argtypes = [array_1d_int, c_int]
mpa_lib.foo_func.restype = None
out = np.arange(6)
print out
mpa_lib.foo_func(out, len(out))
print out |
Si maintenant je passe un array deux dimensions (ndim=2, shape=(2,3)), y a t il un moyen pour que dans le code C, j'accède aux éléments comme par double indice comme pour un tableau C multidimensions classique: tableau[1][2] ?
Merci d'avance