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 :

[NumPy] Insérer array dans array, tailles différentes


Sujet :

Calcul scientifique Python

  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2018
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2018
    Messages : 12
    Par défaut [NumPy] Insérer array dans array, tailles différentes
    Bonjour, dans une fonction je voudrais construire un array et y ajouter des array de taille différentes au fur et à mesure.

    Seulement cela ne fonctionne pas comme je voudrais avec np.insert ou encore np.concatenate, voici ce que j'obtiens :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    a = np.array([1,2,3])
    b = np.array([4,5])
    c = np.array([a,b])
    Valeur de c : array([array([1, 2, 3]), array([4, 5])], dtype=object)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    d = np.array([6,7])
    e = np.insert(c, 2, d)

    Valeur de e : array([array([1, 2, 3]), array([4, 5]), 6, 7], dtype=object)

    d est un array([6,7]) et j'aurais voulu qu'il soit ajouté comme tel, comme a et b, que ce soit un seul élément du tableau.

    Le résultat est le même avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    f = np.concatenate((c[:2], d, c[2:]))

    Quelqu'un aurait une idée pour que mon résultat soit array([array([1, 2, 3]), array([4, 5]), array([6, 7]]), dtype=object) ?

    Merci d'avance

  2. #2
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Billets dans le blog
    125
    Par défaut


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    a = np.array([1,2,3])
    b = np.array([4,5])
     
    c = np.append(a, b)
     
    print(c)

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2018
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2018
    Messages : 12
    Par défaut
    Salut,

    merci pour ta réponse, mais ça ne fonctionne pas comme je le souhaite

    en appliquant ce que tu dis, j'obtiens un array([1, 2, 3, 4, 5]), mais si je reprends ton exemple je voudrais que c soit un array(array([[1, 2, 3]), array([4, 5]]).

    En fait j'ai besoin d'un tableau qui comprends d'autres tableaux, et les ajouter au fur et à mesure.

    En gros j'ai un texte chiffré avec des chiffres et non des lettres, j'ai les espaces, et je connais la taille des lettres, par exemple 235417450233 ça fait le mot Python, une lettre c'est 2 chiffres. Et au fur et à mesure que je lis ce texte je voudrais rentrer les mots dans un tableau Numpy, chaque mot étant un élément du tableau, qui est lui même un tableau des lettres du mot. Donc ici ça me fait le tableau array([23, 54, 17, 45, 02, 33]), et ce tableau je le rentre dans un tableau Numpy.

    Après je pourrais parcourir le tableau principal pour trouver les mots de une, deux ou trois lettres par exemple, et parcourir les tableaux internes pour trouver les bigrammes, trigrammes, doublons, etc.

    J'espère que c'est plus clair

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

    Citation Envoyé par Nestarym Voir le message
    En fait j'ai besoin d'un tableau qui comprends d'autres tableaux, et les ajouter au fur et à mesure.
    Pourquoi ne pas utiliser une simple liste Python d'arrays numpy?

    - 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
    Octobre 2018
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2018
    Messages : 12
    Par défaut
    Pourquoi ne pas utiliser une simple liste Python d'arrays numpy?
    Je voulais utiliser numpy pour des calculs plus rapides, par exemple si je veux compter combien de fois apparaît un mot de 1 lettre que je croise, mais en t'écrivant une réponse plus détaillée j'ai trouvé la solution ^^
    Je fais comme tu as dit, avec une liste classique, et à la fin je la convertie en np.array, ça fonctionne bien j'ai testé

    Merci pour ton aide !
    Bonne journée

  6. #6
    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
    Citation Envoyé par Nestarym Voir le message
    Je voulais utiliser numpy pour des calculs plus rapides, par exemple si je veux compter combien de fois apparaît un mot de 1 lettre que je croise, mais en t'écrivant une réponse plus détaillée j'ai trouvé la solution ^^
    Je fais comme tu as dit, avec une liste classique, et à la fin je la convertie en np.array, ça fonctionne bien j'ai testé
    De toutes les manières les append ou les concatenate sur des array sont très très couteux. C'est opérations sont beaucoup moins performantes que sur les listes. Donc si vous ne connaissez pas à l'avance la taille de votre array, effectivement le mieux c'est de construire d'abord une liste, puis ensuite de la transformer en array.

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

Discussions similaires

  1. afficher descriptifs de tailles différentes dans un tableau de taille fixe
    Par poupouille dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 02/02/2008, 22h27
  2. [MySQL] Insérer dans deux tables différentes
    Par nita2006 dans le forum PHP & Base de données
    Réponses: 11
    Dernier message: 21/01/2008, 12h47
  3. Array : taille limitée ?
    Par OmLight dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 13/12/2007, 19h32
  4. Réponses: 4
    Dernier message: 05/05/2007, 19h12
  5. Insérer données dans structure différente
    Par guigui11 dans le forum Access
    Réponses: 2
    Dernier message: 18/09/2006, 16h31

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