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 :

Créer un numpy.ndarray contenant un numpy.ndarray


Sujet :

Calcul scientifique Python

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 33
    Points : 18
    Points
    18
    Par défaut Créer un numpy.ndarray contenant un numpy.ndarray
    Salut !

    J'ai besoin de créer un tableau "double", pour qu'il puisse s'adapter à une fonction qui existe déjà.

    Actuellement j'ai ça :
    [ 68.2 66.2 63.2 ..., 9.6 7. 7. ]
    Je veux avoir ça :
    [[ 68.2 66.2 63.2 ..., 9.6 7. 7. ]]

    Ça m'avait l'air évident, mais en fait j'ai pas réussi

    Quelqu'un aurait la réponse ?

  2. #2
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Juin 2009
    Messages
    4 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 481
    Points : 13 679
    Points
    13 679
    Billets dans le blog
    1
    Par défaut
    Salut,

    >>> [[1.2, 2.3, 3.14, 42.0]]
    [[1.2, 2.3, 3.14, 42.0]]
    Ou :
    >>> t = list()
    >>> t
    []
    >>> t.append(1.2)
    >>> t.append(2.3)
    >>> t.append(3.14)
    >>> t
    [1.2, 2.3, 3.14]
    >>> dt = list()
    >>> dt.append(t)
    >>> dt
    [[1.2, 2.3, 3.14]]
    >>> [t]
    [[1.2, 2.3, 3.14]]

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 33
    Points : 18
    Points
    18
    Par défaut
    Ça marche pas, j'obtiens ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    >>> t
    [ 68.2,  66.2,  63.2, ...,   9.6,   7. ,   7. ]
    >>> newt = [t]
    >>> newt
    [array([ 68.2,  66.2,  63.2, ...,   9.6,   7. ,   7. ])]
    >>> dt = list()
    >>> dt.append(t)
    >>> dt
    [array([ 68.2,  66.2,  63.2, ...,   9.6,   7. ,   7. ])]

  4. #4
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Juin 2009
    Messages
    4 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 481
    Points : 13 679
    Points
    13 679
    Billets dans le blog
    1
    Par défaut
    Quelle version de Python utilises-tu ?

    Que te donne ceci ?
    >>> type(t)
    <class 'list'>
    >>> type(dt)
    <class 'list'>

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 33
    Points : 18
    Points
    18
    Par défaut
    C'est la version 2.7.6.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    >>> type(t)
    <type 'numpy.ndarray'>
    >>> type(dt)
    <type 'list'>

  6. #6
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Juin 2009
    Messages
    4 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 481
    Points : 13 679
    Points
    13 679
    Billets dans le blog
    1
    Par défaut
    Salut,

    Il ne faut pas confondre la manière dont s'affiche tes données avec leur type réel. Tu le vois ici : une variable list et une autre de type numpy.ndarray sont de types différents, bien que lors de l'affichage, les 2 soient représentées par des nombres entre crochets.

    Pour résoudre ton problème, il savoir ce qu'attend la fonction que tu souhaites utilisées : une liste avec une liste dedans, un numpy.ndarray avec un numpy.ndarray dedans, une combinaison de list et de numpy.ndarray ?

  7. #7
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 33
    Points : 18
    Points
    18
    Par défaut
    Effectivement, t'as raison, j'ai confondu.
    C'est un double numpy.array que j'essaye d'avoir.
    Le tableau que j'ai actuellement est un numpy.array simple.

  8. #8
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Juin 2009
    Messages
    4 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 481
    Points : 13 679
    Points
    13 679
    Billets dans le blog
    1
    Par défaut
    Je n'utilise pas numpy donc je ne pourrai pas répondre à cette question. Je déplace la discussion dans le sous-forum de calcul scientifique en espérant que quelqu'un puisse te répondre. En attendant tu peux regarder un peu la doc de numpy pour trouver comment faire, tu connais maintenant la stratégie.

  9. #9
    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
    Citation Envoyé par corent2 Voir le message
    Effectivement, t'as raison, j'ai confondu.
    C'est un double numpy.array que j'essaye d'avoir.
    Le tableau que j'ai actuellement est un numpy.array simple.
    Un array simple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    >>> import numpy as np
    >>> ar = np.array([1.2, 2.3, 3.14, 42.0])
    >>> ar
    array([  1.2 ,   2.3 ,   3.14,  42.  ])
    Un array comprenant "ar" comme seul élément:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    >>> z = np.array([ar])
    >>> z
    array([[  1.2 ,   2.3 ,   3.14,  42.  ]])
    >>>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    >>> type(z[0])
    <class 'numpy.ndarray'>
    mais je ne comprends pas trop ce que vous cherchez à faire.

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

  10. #10
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 33
    Points : 18
    Points
    18
    Par défaut
    Ok, merci, ça a l'air de fonctionner.

    Par contre, je suis étonné, mon affichage est différent du vôtre.

    Voici mon code.
    J'ai un double numpy.ndarray, j'extrais le numpy.ndarray intérieur, et je le ré-encapsule dans un autre numpy.ndarray (juste pour le test).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    print "type(image):", type(image)
    image_r=image [:,:,0];
    print "image_r:", image_r
    print "type(image_r):", type(image_r)
    print "image_r[0]:", image_r[0]
    print "type(image_r[0]):", type(image_r[0])
     
    myTry = np.array([image_r[0]])
    print "myTry:", myTry
    print "type(myTry):", type(myTry)
    Résultat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    type(image): <type 'numpy.ndarray'>
    image_r: [[ 69.  64.  58. ...,   7.   0.   0.]]
    type(image_r): <type 'numpy.ndarray'>
    image_r[0]: [ 69.  64.  58. ...,   7.   0.   0.]
    type(image_r[0]): <type 'numpy.ndarray'>
    myTry: [[ 69.  64.  58. ...,   7.   0.   0.]]
    type(myTry): <type 'numpy.ndarray'>
    Alors que si j'en crois votre message, l'affichage des numpy.ndarray aurait dû être de cette forme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    myTry: array([[ 69.  64.  58. ...,   7.   0.   0.]])

  11. #11
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2015
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2015
    Messages : 27
    Points : 9
    Points
    9
    Par défaut
    Sous ubuntu, ipython affiche juste l'array entre crochet, tandis quand lançant python, il affiche array(ton_array). La différence entre les deux n'est sûrement pas un problème.

Discussions similaires

  1. quotes, doubles quotes, échappement etc. au secours !
    Par robiwan dans le forum Langage
    Réponses: 9
    Dernier message: 30/04/2008, 15h09
  2. [MySQL] Sauvegarder du texte (db mysql) CR, single-quote, double-quote, etc
    Par vandeyy dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 12/03/2007, 11h22

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