"1 Spalten anstelle von ... erhalten" Fehler in numpy

8

Ich arbeite an dem folgenden Code für die Durchführung von Random Forest Classification in Zug und Test-Sets;

%Vor%

Allerdings bekomme ich den folgenden Fehler bei der Ausführung;

%Vor%

Irgendwelche Vorschläge, wie es zu vermeiden? Danke.

    
user3466132 29.04.2014, 00:42
quelle

6 Antworten

7

genfromtxt gibt diesen Fehler, wenn die Anzahl der Spalten ungleich ist.

Ich kann mir drei Möglichkeiten vorstellen:

1. Verwenden Sie den Parameter usecols ,

%Vor%

Allerdings - das kann bedeuten, dass Sie einige Daten verlieren (wo Zeilen länger als 1434 Spalten sind) - ob das für Sie zählt oder nicht, liegt an Ihnen.

2. Passen Sie Ihre Eingabedatei so an, dass sie die gleiche Anzahl an Spalten aufweist.

3. Verwenden Sie etwas anderes als genfromtxt:

............. so

    
atomh33ls 29.04.2014 12:15
quelle
2

Sie haben zu viele Spalten in einer Ihrer Zeilen. Zum Beispiel

%Vor%     
user545424 29.04.2014 00:47
quelle
1

Ich hatte diesen Fehler. Die Ursache war ein einziger Eintrag in meinen Daten, der ein Leerzeichen enthielt. Dies veranlasste es, es als eine zusätzliche Reihe zu sehen. Stellen Sie sicher, dass alle Abstände in allen Daten konsistent sind.

    
Jonathon D 01.12.2015 17:55
quelle
1

Es sieht so aus, als hätte der Header, der die Spaltennamen enthält, eine weitere Spalte als die Daten selbst (1435 Spalten im Header vs. 1434 für Daten).

Sie könnten entweder:

1) Beseitigen Sie 1 Spalte aus der Kopfzeile, die mit Daten

nicht sinnvoll ist

ODER

2) Verwenden Sie den Header überspringen von genfromtxt () Beispiel: np.genfromtxt('myfile', skip_header=*how many lines to skip*, delimiter=' ') Weitere Informationen finden Sie in der Dokumentation .

    
tadf2 13.10.2016 19:10
quelle
0

Ich hatte diesen Fehler auch, als ich auch versuchte, ein Text-Dataset mit genfromtext zu laden und eine Textklassifizierung mit Keras vorzunehmen.

Das Datenformat war: [some_text]\t[class_label] . Mein Verständnis war, dass es in der ersten Spalte einige Zeichen gibt, die den Parser irgendwie verwirren und die zwei Spalten nicht richtig aufgeteilt werden können.

%Vor%

Dieses Snippet hat den gleichen ValueError bei Ihnen erstellt, und meine erste Problemumgehung bestand darin, alles als eine Spalte zu lesen:

%Vor%

und teilen Sie die Daten später selbst.

Was jedoch letztendlich richtig funktionierte, war, den Kommentarparameter in genfromtxt explizit zu definieren.

%Vor%

Gemäß der Dokumentation:

  

Mit den optionalen Argumentkommentaren wird eine Zeichenfolge definiert   Das ist der Beginn eines Kommentars. Standardmäßig wird genfromtxt angenommen   Kommentare = '#'. Die Kommentarmarkierung kann an beliebiger Stelle in der Zeile vorkommen. Alle   Zeichen, die nach den Kommentarmarkierungen vorhanden sind, werden einfach ignoriert .

Das Standardzeichen, das auf einen Kommentar hinweist, ist '#'. Wenn dieses Zeichen also in Ihrer Textspalte enthalten ist, wird alles danach ignoriert. Das ist wahrscheinlich der Grund, warum die beiden Spalten nicht vom genfromtext erkannt werden können.

    
KLaz 28.02.2018 10:58
quelle
0

Eine Ausnahme wird ausgelöst, wenn eine Inkonsistenz in der Anzahl der Spalten festgestellt wird. Fügen Sie invalid_raise = False hinzu, um die fehlerhaften Zeilen zu überspringen.

%Vor%

Referenz: numpy.genfromtxt

    
zeeshan khan 16.03.2018 15:20
quelle

Tags und Links