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

Python Discussion :

Petite question bête sur le stockage d'un fichier csv dans une matrice


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2020
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2020
    Messages : 7
    Par défaut Petite question bête sur le stockage d'un fichier csv dans une matrice
    Bonjour,

    Je débute tout juste en python et je souhaitais stocker le contenu d'un csv dans un matrice.
    Après m'être démené avec la librairie csv, j'ai cru comprendre qu'il serait mieux d'utiliser numpy.

    J'utilise donc le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    import numpy as np
    matrix = np.loadtxt('matrix.csv',dtype = str, delimiter = ',',unpack=False)
    Jusque là pas de souci, j'obtiens bien une matrice (du moins un tableau de données).
    Cependant mon csv comporte 3 champs par ligne dont le dernier est un entier, et pas un string.

    J'ai donc vu qu'il fallait plutôt utiliser quelque chose comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    matrix = np.loadtxt('matrix.csv',dtype = ("U25, U25, i4"), delimiter = ',',unpack=False)
    D'une part cela m'embête un peu car j'aurais préfère ne pas avoir à préciser la taille des chaînes de caractères mais je n'ai pas réussi à spécifier plusieurs types avec les notations int, str, etc. mais soit.
    D'autre part, voilà maintenant que mon objet matrix n'est plus une matrice mais un array unidimensionnel ! Je trouve cela assez contre-intuitif puisque je précise justement plusieurs types, qui laissent donc penser qu'il y a bien plusieurs "colonnes" dans mon fichier !

    je sais bien que je pourrai simplement utiliser le premier code que j'ai cité et convertir ensuite la colonne correspondante en int, mais j'aurais souhaité comprendre pourquoi loadtxt agissait comme ça lorsque je faisais varier le paramètre dtype, et surtout s'il était possible d'obtenir directement ma matrice avec les bons types pour chaque champ en une seule instruction.

    Je vous remercie d'avance pour votre aide !


    Edit pour en dessous :

    Merci pour ta réponse.

    Le fichier CSV correspond à une matrice des distances qui ressemble à ça :
    A1-51-A , A1-21-A , 4794
    A1-51-A , A1-21-B , 4894
    A1-51-A , A1-21-C , 4994
    A1-51-A , A1-19-A , 5094
    A1-51-A , A1-19-B , 5194
    A1-51-A , A1-19-C , 5294
    A1-51-A , A1-17-A , 5394
    A1-51-A , A1-17-B , 5494
    A1-51-A , A1-17-C , 5594

    je souhaiterais donc une matrice de 3 colonnes avec 2 string et un int.

    Pour le code il n'y a rien de plus que ce que j'ai mis concernant ce que je veux faire.

    Pour la librairie csv j'arrivais à parcourir la matrice en l'utilisant (avec un reader), mais pas vraiment à stocker. Et j'avais l'impression qu'elle considérait mon fichier encore une fois comme un array unidimensionnel avec chaque ligne étant une case, et non pas comme une matrice.

  2. #2
    Membre Expert
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 617
    Par défaut
    Le module csv fait bien le job également.
    Comme on ne voit ni le fichier csv, ni le code de façon claire, pas évident de répondre.

Discussions similaires

  1. Réponses: 2
    Dernier message: 20/04/2011, 15h26
  2. Réponses: 2
    Dernier message: 04/10/2006, 14h03
  3. [vbexcel]question bête sur l'ouverture d'un fichier xls
    Par Mugette dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 25/11/2005, 16h38
  4. [VBA][Excel]Petite question bête !
    Par Mugette dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 20/09/2005, 15h36
  5. [MFC] Question bête sur les CListBox
    Par gwendo dans le forum MFC
    Réponses: 1
    Dernier message: 10/08/2005, 16h43

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