Numpy arrays : j'ai des problème à le remplir [Résolu]

Signaler
Messages postés
44
Date d'inscription
lundi 20 avril 2020
Statut
Membre
Dernière intervention
2 mai 2021
-
Messages postés
16033
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
15 juin 2021
-
Bonjour,


Je suis sur python et je travaille sur un array à deux dmensions, mais il ne veut définitivement pas se remplir. Je commence par le créer vide
probs = np.array([[],[]])

puis j'ajoute des valeurs
np.append(probs,occurrences[i],float(calcul compliqué...))

à plusieurs reprises. En gros, j'ajoute à chaque fois une ligne comprenant la place du caractère et la probabilité qui lui est associée.

Ensuite, j'écris le tableau avec
print(probs)
... quelle n'est pas ma surprise quand je vois qu'il est vide ! Pourtant les valeurs contiennent bien quelque chose (j'ai testé, si je met
print(les valeurs)
juste avant le
np.append
, elles y sont bien. Erreur d'écriture ? Mal adapté au numpy ? Confusion due aux arrays ? Qu'est-ce qui cause ce vide intersidéral dans mon tableau "probs" ?



Code total si ça peut être utile :
#Mise des probabilités dans une liste
i=0
probs = np.array([[],[]])
print("le tableau vide est : " + str(probs))
for i in range(nbroccu):
    print("vérifions la proba à l'occurence" + str(occurrences[i]) )
    if str(data[int(occurrences[i]+11)]) == ".": #Si le nombre a des décimales
        if str(data[int(occurrences[i]+13)]) == "]": # Si le nombre a 1 décimale seulement
            print("le nombre à une décimale " + str(data[int(occurrences[i]+10)]) + str(data[int(occurrences[i]+11)]) + str(data[int(occurrences[i]+12)]) +"va être ajouté")
            np.append(probs,occurrences[i],float (str(data[int(occurrences[i]+10)])  + str(data[int(occurrences[i]+11)]) + str(data[int(occurrences[i]+12)])) )
        else:
            print("le nombre à deux décimale" + str(data[int(occurrences[i]+10)])   +str(data[int(occurrences[i]+11)]) + str(data[int(occurrences[i]+12)]) +str(data[int(occurrences[i]+13)]) + " va être ajouté")
            np.append(probs,[occurrences[i],float (str(data[int(occurrences[i]+10)])   +str(data[int(occurrences[i]+11)]) + str(data[int(occurrences[i]+12)]) +str(data[int(occurrences[i]+13)])) ])

    else:
        print("le nombre " +str(data[int(occurrences[i]+10)]) + "va être ajouté")
        np.append(probs,[occurrences[i],float (str(data[int(occurrences[i]+10)])) ])
print(probs)


Voilà, merci beaucoup pour votre aide (désolé, je n'ai pas utilisé numpy avant !)


Configuration: Windows / Chrome 88.0.4324.182


2 réponses

Messages postés
16033
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
15 juin 2021
867
bonjour,
as-tu lu la documentation de append() de numpy?
as-tu essayé avec un programme plus simple?
un exemple:
import numpy as np
probs = np.array([])
print(probs)
np.append(probs,123)
print(probs)
probs=np.append(probs,456)
print(probs)
Messages postés
44
Date d'inscription
lundi 20 avril 2020
Statut
Membre
Dernière intervention
2 mai 2021
2
Merci beaucoup ! J'ai par ailleurs résolu les problèmes de dimension, et d'axes ! Je mes dès que possible un petit produit de mon programme...
Messages postés
44
Date d'inscription
lundi 20 avril 2020
Statut
Membre
Dernière intervention
2 mai 2021
2
Petit résultat de mon programme (il me reste à améliorer ma base de données...) :
abont o, jà à-cies, be lerentréespéfèman çase uitit bidetsé gns heté omois peme à tiontr sade çailal

Messages postés
16033
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
15 juin 2021
867
parfait!