IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Calcul scientifique Python Discussion :

[scipy] remplissage de matrice creuse


Sujet :

Calcul scientifique Python

  1. #1
    Membre habitué Avatar de KINENVEU
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 184
    Points : 131
    Points
    131
    Par défaut [scipy] remplissage de matrice creuse
    bonjour,

    je voudrais pouvoir remplir une matrice creuse.

    exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    from scipy.sparse import coo_matrix
    row = [0, 3, 1, 0]
    col = [0, 3, 2, 0]
    data = [1, 2, 3, 4]
    A = coo_matrix((data, (row, col)), shape=(4, 4))
    print A.todense()
    ca marche tres bien.

    mais le probleme, c'est que je voudrais remplir ma matrice au fur et a mesure, plutot qu'a l'initialisation.

    un truc du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    from scipy.sparse import coo_matrix
    A = coo_matrix((4, 4))
    A[0, 0] = 9
    print A.todense()
    et la ca ne marche plus ...



    est ce que quelqu'un connait un moyen de remplir la matrice apres l'initialisation ?

    merci.

  2. #2
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    Il me semble que la structure doit être définie à la construction, malheureusement Il faut donc que tu construises ta matrice avec des listes de listes ou ce genre de bestioles

  3. #3
    Membre habitué Avatar de KINENVEU
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 184
    Points : 131
    Points
    131
    Par défaut
    en fait, j'ai trouve.
    je suis un boulet

    je n'avais pas vu le type : dok_matrix
    qui permet de remplir la matrice apres son initialisation.

    par contre :
    - experimentalement, le temps de contruction est 4 fois celui de 'coo_matrix'.
    - si on affecte A[i,j] = 0 et que A[i,j] n'existe pas encore, on se prend une erreur ...


    j'ai egalement teste 'lil_matrix' que je trouve un tout petit peu plus lent que 'dok_matrix'.

    pour info:
    http://docs.scipy.org/doc/

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [scipy] solveur de matrice creuse
    Par KINENVEU dans le forum Calcul scientifique
    Réponses: 0
    Dernier message: 05/05/2009, 01h22
  2. Code pour matrice creuse (sparse matrix)
    Par Xavier dans le forum C++Builder
    Réponses: 1
    Dernier message: 02/11/2007, 17h41
  3. Reshape d'une matrice creuse
    Par levit dans le forum MATLAB
    Réponses: 4
    Dernier message: 11/07/2007, 13h46
  4. Matrices creuses de double
    Par panda31 dans le forum C
    Réponses: 7
    Dernier message: 25/04/2006, 09h46
  5. Matrice creuse
    Par lamar dans le forum C
    Réponses: 16
    Dernier message: 10/12/2005, 00h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo