Bonjour tous le monde,
Je suis débutant en python,pour mon projet je dois extrait des valeurs et les transformer en fichier csv pour utiliser le pandas.Je rencontre un problème pour l’écriture de fichier csv .Le terminal m'indique que, j'ai un array de 0D alors que quand je fais len(b1X(k-1]).Je trouve 2.Pouvez-vous m'indiquer mes erreurs? Ou d'autre solutions.Je vous remercie d'avance.
import os
import numpy as np
import matplotlib.pyplot as plt
import glob
import os.path
import csv
def tri1(lines): # creation de list
tab=[]
for chn in lines:
tab.append(chn.split('\t'))
return(tab)
def change(nl,nc,tab): # changement en float
A = A=np.arange(2,nc-1)
for lst in tab[1:nl]:
for i in A:
lst[i]=float(lst[i])
#print(lst)
return(lst)
def creation_dossier(chemin1): # creation d'un autre répertoire
os.mkdir(chemin1)
def enregistrment_fichier(nom_de_fichier,matrice):
np.savetxt(nom_de_fichier,matrice,delimiter =" ")
def affec(nl,tab):
b1X=np.zeros(nl-1) # intilisation de matrice
b1Y=np.zeros(nl-1)
b1Z=np.zeros(nl-1)
AA=np.arange(1,nl)
for k in AA:
b1X[k-1]=tab[k][2] # creation de matrice
b1Y[k-1]=tab[k][3]
b1Y[k-1]=tab[k][4]
enregistrment_fichier("test_pour_valeur.csv",b1X[k-1]) # appel de la fonction
savoir = type(b1X)
print(savoir)
def tri(rep): # fonction d'excution des taches
os.chdir(rep)
for file in glob.glob("*.txt"):
test123 =open(file,"r")
lignes = test123.readlines()
tes1 = tri1(lignes)
modif = change(3,32,tes1)
trifinale = affec(3,tes1)
test123.close()
return(tes1)
ter = tri("/media/tonny/TOSHIBA EXT/test_pour_stage/premier_test")
ter1 = creation_fichier("/media/tonny/TOSHIBA EXT/test_pour_stage/premier_test/test_reper_1")
print("\n")
terminale :
Traceback (most recent call last):
File "test_forum.py", line 61, in <module>
ter = tri("/media/tonny/TOSHIBA EXT/test_pour_stage/premier_test")
File "test_forum.py", line 56, in tri
trifinale = affec(3,tes1)
File "test_forum.py", line 41, in affec
enregistrment_fichier("test_pour_valeur.csv",b1X[k-1]) # appel de la fonction
File "test_forum.py", line 29, in enregistrment_fichier
np.savetxt(nom_de_fichier,matrice,delimiter =" ")
File "<__array_function__ internals>", line 6, in savetxt
File "/home/tonny/.local/lib/python3.6/site-packages/numpy/lib/npyio.py", line 1395, in savetxt
"Expected 1D or 2D array, got %dD array instead" % X.ndim)
ValueError: Expected 1D or 2D array, got 0D array instead
# Petits conseils
Posté par _kaos_ . Évalué à 1. Dernière modification le 25 avril 2020 à 12:39.
Salut,
Quelques conseils…
D'abord tu as un Aide mémoire sur la syntaxe Markdown qui est situé juste en dessous de la zone d'édition, ce qui pourrait te permettre de poster avec un peu plus de style :)
Ok, l'exemple est avec ruby, mais si on change ruby en python, ça rend pas trop mal :
J'ai pas tout re-posté, c'était juste pour l'exemple avec coloration syntaxique et peut-être que quelqu'un de l'équipe de modération fera juste les petites modifs pour rendre les choses plus lisibles qu'un pavé.
Ensuite, y'a quelques petites fautes de français. C'est perturbant. Pas grave, mais perturbant. D'habitude (ce n'est que ma façon de faire et je ne souhaite pas l'imposer), tout mon code est en anglais, sauf les données.
Enfin, tu appelle la fonction
creation_fichier
qui n'existe pas dans le code montré (et sans les données que tu veux enregistrer en paramètre). Donc là… ça peut être problématique.Ça peut être l'usage d'un IDE qui garde en mémoire cette fonction et donc tu ne vois pas que tu fais le mauvais appel. Solution simple et bourin : quitter et relancer l'IDE.
Matricule 23415
# helpe
Posté par mr_maurice . Évalué à 1.
Poste un extrait du fichier sur lequel tu travaille (premier_test ?)
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.