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 :

Slicing sur vecteur


Sujet :

Python

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    ingénieur matériaux
    Inscrit en
    Octobre 2018
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : ingénieur matériaux
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2018
    Messages : 1
    Points : 0
    Points
    0
    Par défaut Slicing sur vecteur
    Bonjour à tous,

    J'ai un ptit souci:
    Je souhaite "découper" un vecteur en plusieurs sous-vecteurs de taille identique.
    Le vecteur contient 5456 nombres (longueur) et je souhaite le diviser en 11 vecteurs de 496 nombres (lg=longueur/11)
    L'idée étant de sortir F1=F[497 :992:1] et ainsi de suite jusqu'à 5456.

    Voici ce que je propose :

    F0=Force[0:lg:1]
    #contient les 496 premiers nombres
    for i in range (1,longueur,lg)
    F=Force[(i*lg)+1:i*lg:1]
    i=i+1


    Ce qu'il me sort c'est : []

    Quelqu'un a une idée ?

    Merci d'avance !

  2. #2
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 462
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 462
    Points : 9 249
    Points
    9 249
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Voilà comment je ferais pour faire ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    L = [i for i in range(0, 5456)] # pour test
     
    R = []
    for i, j in enumerate(range(0, 5456, 496)):
        R.append(L[j:j+496])
     
    for k in range(0, 11):
        print(R[k])
    Ce qui donne bien (j'ai raccourci l'affichage):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    [0, 1, 2, 3, ..., 493, 494, 495]
    [496, 497, 498, ..., 989, 990, 991]
    [992, 993, 994, ..., 1485, 1486, 1487]
    [1488, 1489, 1490, ..., 1981, 1982, 1983]
    [1984, 1985, 1986, ..., 2477, 2478, 2479]
    [2480, 2481, 2482, ..., 2973, 2974, 2975]
    [2976, 2977, 2978, ..., 3469, 3470, 3471]
    [3472, 3473, 3474, ..., 3965, 3966, 3967]
    [3968, 3969, 3970, ..., 4461, 4462, 4463]
    [4464, 4465, 4466, ..., 4957, 4958, 4959]
    [4960, 4961, 4962, ..., 5453, 5454, 5455]
    Un expert est une personne qui a fait toutes les erreurs qui peuvent être faites, dans un domaine étroit... (Niels Bohr)
    Mes recettes python: http://www.jpvweb.com

  3. #3
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    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 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Salut,

    Citation Envoyé par soss94 Voir le message
    J'ai un ptit souci:
    Je souhaite "découper" un vecteur en plusieurs sous-vecteurs de taille identique.
    Le vecteur contient 5456 nombres (longueur) et je souhaite le diviser en 11 vecteurs de 496 nombres (lg=longueur/11)
    On peut utiliser des listes de bases Python et la découper mais, une grosse liste de nombres devrait vous faire penser à utiliser numpy qui a tout ce qu'il faut pour écrire çà en une seule ligne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    import numpy as np
    ar = np.array(range(5456))
    np.array_split(ar, 11)  # la ligne.
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

Discussions similaires

  1. Reperage, indexage et calcul sur vecteurs
    Par Newenda dans le forum MATLAB
    Réponses: 7
    Dernier message: 06/05/2009, 11h57
  2. [E-03] Erreur sur formule - condition sur vecteur
    Par P4board dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 31/01/2009, 01h24
  3. Recherche sur vecteur fixe
    Par zeralium dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 20/09/2008, 15h43
  4. Tri sur vecteur
    Par degseb dans le forum Débuter
    Réponses: 4
    Dernier message: 06/07/2008, 12h04
  5. Slice sur Partitions
    Par Guizz dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 09/07/2003, 17h45

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