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

Résolu/Fermé
Lecodeurhtmlcss Messages postés 76 Date d'inscription lundi 20 avril 2020 Statut Membre Dernière intervention 24 août 2022 - Modifié le 24 févr. 2021 à 15:20
yg_be Messages postés 23352 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 27 novembre 2024 - 28 févr. 2021 à 20:41
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

yg_be Messages postés 23352 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 27 novembre 2024 Ambassadeur 1 554
Modifié le 24 févr. 2021 à 15:56
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 76 Date d'inscription lundi 20 avril 2020 Statut Membre Dernière intervention 24 août 2022 1
24 févr. 2021 à 19:34
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 76 Date d'inscription lundi 20 avril 2020 Statut Membre Dernière intervention 24 août 2022 1
28 févr. 2021 à 19:47
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 23352 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 27 novembre 2024 1 554
Modifié le 28 févr. 2021 à 20:41
parfait!
0