Précédent   Forum du club des développeurs et IT Pro > Autres langages > Python & Zope > Interfaçage autre langage
Interfaçage autre langage Forum d'entraide pour l'interfaçage avec d'autres langages (ctypes, api C, swig, ...)
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 17/10/2011, 13h10   #1
atalon1
Membre du Club
 
Inscription : mars 2005
Messages : 160
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 160
Points : 56
Points : 56
Par défaut 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
atalon1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 00h19.


 
 
 
 
Partenaires

Hébergement Web