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 :

Filtrage de matrice


Sujet :

Python

  1. #1
    Membre averti
    Homme Profil pro
    etudiant
    Inscrit en
    Mars 2021
    Messages
    44
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (�le de France)

    Informations professionnelles :
    Activit� : etudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2021
    Messages : 44
    Par d�faut Filtrage de matrice
    Bonsoir, Je travaille avec des matrices 2D contenant, pour un certain nombre de particule: les latitudes et longitudes de chaque particule en fonction des pas de temps :


    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
        Tabtime = np.zeros(0)
        Tabpart = np.zeros(0)
        Tabtime = np.arange(0, 87,1)
        Tabpart = np.arange(0, 15,1)
        for i in Tabtime:
        for j in Tabpart:     
            if l[i][j] <= 120 and l[i][j] >= 26:
                 if L[i][j] >= 15 and L[i][j] <= 45:   
                    lt[i][j] = np.append(lt, l[i][j])
                    Lt[i][j] = np.append(Lt, L[i][j])
    Tabtime contient les 87 pas de temps, et Tabpart contient les particules, ce que je cherche � faire est de garder les coordonn�es des particules qui se situent uniquement entre 26� et 120� de longitude et 15� � 45� de Latitude.
    J'essaye de ranger ces coordonn�es selectionn�s dans deux nouvelles matrices mais avec mon code je n'arrive pas � les remplir :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     
    print(lt)                
     
    >> 
    [[0. 0. 0. ... 0. 0. 0.]
     [0. 0. 0. ... 0. 0. 0.]
     [0. 0. 0. ... 0. 0. 0.]
     ...
     [0. 0. 0. ... 0. 0. 0.]
     [0. 0. 0. ... 0. 0. 0.]
     [0. 0. 0. ... 0. 0. 0.]]



    Si vous auriez une id�e pour cela je veux bien

    Merci!

  2. #2
    Membre �prouv�
    Inscrit en
    Juillet 2013
    Messages
    80
    D�tails du profil
    Informations forums :
    Inscription : Juillet 2013
    Messages : 80
    Par d�faut
    Bonjour,

    Je ne suis pas sur de comprendre votre code ; les variables l,lt,L,Lt ne sont jamais initialis�es et pourtant vous utilisez leur valeur ? D'o� viennent ces valeurs ? Un fichier excel ?

    Si je comprends bien, � chaque pas de temps, vous avez une matrice qui vous donne la latitude et la longitude de chaque particule, est-ce que ce genre de chose vous convient ?
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    import pandas as pd
     
    # Create fake dataframe
    df = pd.DataFrame(columns=['particle','latitude','longitude'])
    df.set_index('particle', inplace=True) # Set particle as index
     
    # Create fake data
    import random
    for i in range(100) : df.loc[str(i)]=[random.random(),random.random()]
     
    # Extract data, filter over latitude AND longitude
    filtered_data = df[(df['latitude']>0.5) & (df['longitude']<0.5)]
    print(filtered_data)

  3. #3
    Membre Expert

    Homme Profil pro
    Ing�nieur calcul scientifique
    Inscrit en
    Mars 2013
    Messages
    1 229
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : Ing�nieur calcul scientifique

    Informations forums :
    Inscription : Mars 2013
    Messages : 1 229
    Par d�faut
    Et sans utiliser pandas, la fonction np.where devrait suffire � r�pondre � votre besoin !

  4. #4
    Membre averti
    Homme Profil pro
    etudiant
    Inscrit en
    Mars 2021
    Messages
    44
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (�le de France)

    Informations professionnelles :
    Activit� : etudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2021
    Messages : 44
    Par d�faut
    Bonjour,
    merci pour la r�ponse,

    Toutes ces variables ont �t� initialis�es plus t�t dans le code, voici le code depuis le d�but :

    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
     
     
     
    import netCDF4 as ndf
    import matplotlib.pyplot as plt
    import numpy as np
    import glob
    import math
     
     
     
    ext="*.nc4"
    for files in sorted(glob.glob(ext),reverse=True):
        print(files)  
        part_ds = ndf.Dataset(files, "r", format="NETCDF4")  
        part = part_ds.variables['part']    
        t = part_ds.variables['time']      
        l = part_ds.variables['lon']  
        L = part_ds.variables['lat']
        O = part_ds.variables['O3']
        T = part_ds.variables['T']
        PV = part_ds.variables['PV']
        p = part_ds.variables['p']   
        Tabtime = np.zeros(0)
        Tabpart = np.zeros(0)
        Tabtime = np.arange(0, len(t),1)
        Tabpart = np.arange(0, 15,1)
        lt=np.zeros((len(t),15))
        Lt=np.zeros((len(t),15))
     
        for i in Tabtime:
            for j in Tabpart:     
                if l[i][j] <= 120 and l[i][j] >= 26:
                     if L[i][j] >= 15 and L[i][j] <= 45:   
                        lt[i][j] = np.append(lt, l[i][j])
                        Lt[i][j] = np.append(Lt, L[i][j])
     
    print(lt)

    Les donn�es sont import�es depuis un ensemble de fichier NetCDF, dans lesquels elles sont sont la forme time(particule, longitude, latitude).

    Donc vous avez bien compris les donn�es que je traite. Par contre moi je ne sais pas exactement comment utiliser votre code dans mon cas.

    D'ailleurs je cherche plus globalement � r�cup�rer toutes les valeurs (O , T, PV, p, L, l) uniquement dans le cas des particules qui sont � : 15�<L<45� et 26�<l<120�.

  5. #5
    Expert �minent
    Homme Profil pro
    Architecte technique retrait�
    Inscrit en
    Juin 2008
    Messages
    21 775
    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 775
    Par d�faut
    Salut,

    D�j� votre code n'affiche que les donn�es du dernier fichier puisque les variables sont r�initialis�es � chaque it�ration.
    Ensuite, v�rifiez que les conditions
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
                if l[i][j] <= 120 and l[i][j] >= 26:
                     if L[i][j] >= 15 and L[i][j] <= 45:
    sont vraies de temps en temps car arriv� �:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
                        lt[i][j] = np.append(lt, l[i][j])
    �� devrait se vautrer.

    Pour le reste vous avez d�j� un probl�me de coh�rence "� la base".
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
        lt=np.zeros((len(t),15))
        Lt=np.zeros((len(t),15))
    cr�e des tableaux avec de tas de z�ros.... et la condition ne sera jamais vraie.

    Apr�s on peut utiliser des fonctionnalit�s un peu plus avanc�es mais pour l'instant, �� ne marche pas parce que vous n'�tes pas assez attentif � ce que vous avez �crit.

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

Discussions similaires

  1. [XL-2010] Filtrage de donn�es via une matrice m�tiers
    Par hozce dans le forum Macros et VBA Excel
    R�ponses: 17
    Dernier message: 10/07/2015, 11h40
  2. Filtrage par matrices
    Par diremafik dans le forum Signal
    R�ponses: 0
    Dernier message: 28/03/2013, 15h21
  3. Filtrage par matrice de convolution
    Par spring.time dans le forum Traitement d'images
    R�ponses: 11
    Dernier message: 17/01/2012, 14h12
  4. Filtrage Kalman, multiplication matrice
    Par kronanberg dans le forum Signal
    R�ponses: 1
    Dernier message: 13/05/2011, 16h14
  5. Matrice de filtrage ?
    Par gimlithedwarf dans le forum Traitement d'images
    R�ponses: 2
    Dernier message: 24/08/2002, 09h44

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