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 :

Lecture d'un fichier.csv par numpy


Sujet :

Calcul scientifique Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2014
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2014
    Messages : 44
    Par défaut Lecture d'un fichier.csv par numpy
    Bonjour à tous,

    J'ai une petite question concernant la lecture de fichier au format .csv par la librairie numpy ainsi que du traitement
    J'ai un fichier CSV avec plusieurs colonnes. Je souhaiterai nommer chaque colonne et après ne garder que les lignes qui m'intéresse, c'est-à-dire répondant à certains critères prédéfinis.

    Voici un exemple de mon fichier .csv :

    Nom : k7uk.jpg
Affichages : 2072
Taille : 20,5 Ko

    Je ne souhaite garder que les lignes où l'objet Corot dépasse les 10.000 dans la colonne ID.


    Voici donc mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    # !/usr/bin/python
    # -*- coding : utf-8 -*- 
     
    import numpy as np
     
    data = np.recfromcsv('corot-resultat.csv', delimiter=',', filling_values=np.nan)
     
     
    # Lire toutes les lignes de data, et ne garder que celles ou Corot xx..xx => 100000
    #Pour chaque ligne dans data :
    #Si Corot => 100000, on passe a la ligne suivante, sinon, on supprime la ligne
     
    #for line in data.readlines() :
     
     
    print data
    1) Est-ce-que "recfromcsv" est le plus optimisé pour mon code ou dois-je plutôt passer par genfromtxt ?

    2) Comment puis-je nommer des colonnes sous numpy et fixer des critères pour ne m'afficher que les lignes répondant aux critères (voir exemple image) ?

    Je ne veux pas forcément de code tout prêt, mais plutot des pistes pour chercher par moi-même

    Cordialement

  2. #2
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2014
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2014
    Messages : 44
    Par défaut
    J'imagine qui faut que j'aille dans ce sens ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    RA=[]
    Dec=[]
    ID=[]
    Sp_Type=[]
     
    while aline :
           items = aline.split()
           ra.append(1)
           dec.append(1)
           id.append(1)
           Sp_type.append(1)
     
           ra[i] = items[0]
           dec[i] = items[1]
           id[i] = items[2]
           Sp_Type[i] = items [3]
     
           aline = data.readline()
           i = i+1

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2014
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2014
    Messages : 44
    Par défaut
    Aucunes réponses ?

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 672
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 672
    Par défaut
    Salut,

    Citation Envoyé par Andromedae Voir le message
    Aucunes réponses ?
    Pas facile de comprendre le problème: numpy c'est des tableaux pour faire des calculs numériques. Les colonnes de votre .CSV sont plutôt de type quelconque et le type de traitement que vous attendez serait plus simple à réaliser avec pandas. Mais ce n'est peut être pas ce que vous voulez.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2014
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2014
    Messages : 44
    Par défaut
    Merci de ta réponse.
    Disons qu'il est demandé dans notre projet d'utiliser numpy pour après faire du traitement.
    En effet, mes colonnes peuvent être des doubles, string ...

    Je voulais juste savoir dans un premier temps comment je peux enregistrer mon fichier .csv dans un numpy array et associer chaque objet à la bonne catégorie (RA / DEC / ...) ?

  6. #6
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 672
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 672
    Par défaut
    Salut,

    Citation Envoyé par Andromedae Voir le message
    Je voulais juste savoir dans un premier temps comment je peux enregistrer mon fichier .csv dans un numpy array et associer chaque objet à la bonne catégorie (RA / DEC / ...) ?
    Si vous devez utiliser numpy, regarder dans la documentation n'est pas une option.
    Lisez par exemple.
    Après vous écrivez un petit bout de code pour vous assurer que vous n'avez pas trop mal compris:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    >>> import numpy as np
    >>> from io import StringIO
    >>> DATA = u'''A, B, C
    ...    1,    2,    3
    ...   10,   20,   30
    ...  100,  200,  300'''
    >>>
    >>> data = np.genfromtxt(StringIO(DATA), delimiter=',', names=True)
    >>> data
    array([(1.0, 2.0, 3.0), (10.0, 20.0, 30.0), (100.0, 200.0, 300.0)],
          dtype=[('A', '<f8'), ('B', '<f8'), ('C', '<f8')])
    >>> data['A']
    array([   1.,   10.,  100.])
    >>>
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

Discussions similaires

  1. Lecture fichier .csv par colonne
    Par BRAUKRIS dans le forum Langage
    Réponses: 3
    Dernier message: 05/10/2007, 14h08
  2. Lecture d'un fichier octet par octet
    Par Yux dans le forum C
    Réponses: 7
    Dernier message: 31/10/2005, 22h58
  3. Lecture d'un fichier octet par octet
    Par PopKoRn...X_x dans le forum C++
    Réponses: 10
    Dernier message: 01/07/2005, 19h09
  4. Lecture d'un fichier mot par mot
    Par hamster dans le forum C++
    Réponses: 7
    Dernier message: 21/02/2005, 17h25
  5. Réponses: 6
    Dernier message: 02/09/2003, 15h12

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