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 :

[DEB][Numpy] tableaux à 3 dimensions et plus, syntaxe [Python 3.X]


Sujet :

Calcul scientifique Python

  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2012
    Messages : 112
    Points : 98
    Points
    98
    Par défaut [DEB][Numpy] tableaux à 3 dimensions et plus, syntaxe
    Bonjour à tous,

    malgré mes recherches sur les différents tutoriels sur numpy, je n'ai pas trouvé de réponse à ma question, car les sujets sont tournés plutôt vers les tableaux et matrices à deux dimensions et ,en complément,avec la phrase "(ça se généralise bien sûr à des tableaux de trois dimensions ou plus)".
    Voici un tableau à 3 dimensions
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    T=np.array([[[1,2,3,4]]])
    on atteint la valeur 1 avec T[0,0,0] 2 avec T[0,0,1] etc

    Ma question est : comment faire pour créer des valeurs telle que, par exemple, T[1,2,1]=10 soit en modifiant l'expression de T écrite au dessus ou par une autre méthode.

    Merci de m'avoir consacré de votre temps

  2. #2
    Expert éminent

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 300
    Points : 6 780
    Points
    6 780
    Par défaut
    Salut,

    quelque chose comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    >>> arr = np.array([[[1, 2, 3], [4, 5, 6]], [7, 8, 9]])
    >>> arr[0]
    [[1, 2, 3], [4, 5, 6]]
    >>> arr[0][0]
    [1, 2, 3]
    >>> arr[0][1][1]
    5
    >>> arr[1][0]
    7
    >>>
    ?

  3. #3
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2012
    Messages : 112
    Points : 98
    Points
    98
    Par défaut
    Merci de ta réponse .Cela semble bien être ce que je cherchais mais ,question subsidiaire
    pourquoi
    retourne 1 et non 3

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    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 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Citation Envoyé par torquemada Voir le message
    Ma question est : comment faire pour créer des valeurs telle que, par exemple, T[1,2,1]=10 soit en modifiant l'expression de T écrite au dessus ou par une autre méthode.
    Un tableau numpy est une zone mémoire contiguë (donc un tableau 1D) avec une méthode d'accès qui donnera l'illusion des autres dimensions. Exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    >>> ar = np.zeros(2*3*4)
    >>> ar
    array([ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  
              0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.])
    C'est un tableau 1D et on peut changer/accéder aux valeurs:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    >>> ar[1] = 99
    >>> ar[1] = 99
    >>> ar
    array([  0.,  99.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
             0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
             0.,   0.])
    >>>
    Maintenant on peut le changer en tableau à 3 dimensions:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    >>> ar.resize((2, 3, 4))
    >>> ar
    array([[[  0.,  99.,   0.,   0.],
            [  0.,   0.,   0.,   0.],
            [  0.,   0.,   0.,   0.]],
     
           [[  0.,   0.,   0.,   0.],
            [  0.,   0.,   0.,   0.],
            [  0.,   0.,   0.,   0.]]])
    Et pour retrouver la case marquée 99, c'est:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    >>> ar[0, 0, 1]
    99.0
    >>>
    Citation Envoyé par torquemada Voir le message
    malgré mes recherches sur les différents tutoriels sur numpy, je n'ai pas trouvé de réponse à ma question, car les sujets sont tournés plutôt vers les tableaux et matrices à deux dimensions et ,en complément,avec la phrase "(ça se généralise bien sûr à des tableaux de trois dimensions ou plus)".
    Ah ben, les tutoriels permettent de rendre la documentation plus comestible mais pas facile de trouver la réponse à toutes les questions sans apprendre(*) à lire la documentation.
    (*) parce qu'elle ne vous donnera pas toujours la réponse directement.

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

  5. #5
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2012
    Messages : 112
    Points : 98
    Points
    98
    Par défaut
    Merci à tous

    euh pour la doc j'ai un peu de mal avec l'anglais

  6. #6
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    941
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 941
    Points : 1 384
    Points
    1 384
    Par défaut
    Citation Envoyé par torquemada Voir le message
    Merci de ta réponse .Cela semble bien être ce que je cherchais mais ,question subsidiaire
    pourquoi
    retourne 1 et non 3
    Parce que c'est un mauvais exemple. C'est un array "mal foutu":
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    >>> arr = np.array([[[1, 2, 3], [4, 5, 6]], [7, 8, 9]])
    >>> arr.shape
    (2,)
    >>> arr.dtype
    dtype('O')                # le type des éléments est "object", on s'attendrait à un type numérique
    >>> arr[0]
    [[1, 2, 3], [4, 5, 6]]
    >>> arr[1]
    [7, 8, 9]
    C'est un array numpy de 2 éléments, contenant des listes Python. Il n'y a pas moyen de voir ça comme un array 3D, il manque des éléments.
    Un meilleur exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    >>> arr = np.array([[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10,11,12]]])
    >>> arr
    array([[[ 1,  2,  3],
            [ 4,  5,  6]],
     
           [[ 7,  8,  9],
            [10, 11, 12]]])
    >>> arr.ndim
    3
    >>> arr.shape
    (2, 2, 3)
    >>> arr[0,1,2]
    6

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

Discussions similaires

  1. [Tableaux] mémoriser un tableaux à n dimension
    Par Benat64 dans le forum Langage
    Réponses: 4
    Dernier message: 21/02/2006, 16h43
  2. Réponses: 12
    Dernier message: 03/01/2006, 17h23
  3. [Tableaux] Gerer des tableaux à deux dimensions
    Par FrankOVD dans le forum Langage
    Réponses: 2
    Dernier message: 02/12/2005, 15h20
  4. Tableaux à plusieurs dimensions
    Par Diabolik dans le forum Assembleur
    Réponses: 3
    Dernier message: 08/12/2003, 12h15
  5. [langage] erreurs utilisation tableaux 2 dimensions
    Par drosof dans le forum Langage
    Réponses: 11
    Dernier message: 01/07/2003, 11h44

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