Numpy arrays : j'ai des problème à le remplir

Résolu
Lecodeurhtmlcss Messages postés 79 Statut Membre -  
yg_be Messages postés 24281 Statut Contributeur -
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


A voir également:

2 réponses

yg_be Messages postés 24281 Statut Contributeur Ambassadeur 1 584
 
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)
1
Lecodeurhtmlcss Messages postés 79 Statut Membre 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...
0
Lecodeurhtmlcss Messages postés 79 Statut Membre 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

0
yg_be Messages postés 24281 Statut Contributeur 1 584
 
parfait!
0