Dies ist eine einfache Frage, aber ich habe eine MxN-Matrix. Ich möchte nur bestimmte Spalten extrahieren und in einem anderen Numpy-Array speichern, erhalte jedoch ungültige Syntaxfehler. Hier ist der Code:
extractedData = data[[:,1],[:,9]].
Es scheint, als ob die obige Zeile ausreichen sollte, aber ich denke nicht. Ich habe mich umgesehen, konnte aber in Bezug auf dieses spezielle Szenario keine Syntax finden.
Angenommen, Sie möchten die Spalten 1 und 9 mit diesem Codeausschnitt erhalten, sollte dies sein:
quelle
Wenn Sie nur einige Spalten extrahieren möchten:
Wenn Sie bestimmte Spalten ausschließen möchten:
quelle
Eine Sache, auf die ich hinweisen möchte, ist, dass wenn die Anzahl der Spalten, die Sie extrahieren möchten, 1 ist, die resultierende Matrix keine Mx1-Matrix wäre wie erwartet sondern ein Array, das die Elemente der von Ihnen extrahierten Spalte enthält.
Um es in Matrix zu konvertieren, sollte die Reshape- Methode (M, 1) für das resultierende Array verwendet werden.
quelle
data[:, 8:9]
. Dies dauert die achte Spalte, entfernt jedoch nicht die zusätzliche Dimension.Gerade:
Die Spalten müssen nicht in der richtigen Reihenfolge sein:
quelle
Eine weitere Sache, die Sie beachten sollten, wenn Sie Spalten aus dem ND-Array mithilfe einer Liste wie dieser auswählen:
Wenn Sie eine Dimension entfernen (indem Sie beispielsweise nur eine Zeile auswählen), wird das resultierende Array (aus irgendeinem Grund) permutiert . So:
quelle
Sie können verwenden:
extracted_data = data.ix[:,['Column1','Column2']]
quelle
Ich denke, die Lösung hier funktioniert nicht mehr mit einem Update der Python-Version. Eine Möglichkeit, dies mit einer neuen Python-Funktion zu tun, ist:
das gibt Ihnen das gewünschte Ergebnis.
Die Dokumentation finden Sie hier: https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.to_numpy.html#pandas.DataFrame.to_numpy
quelle
Sie können auch extractData = data ([:, 1], [:, 9]) verwenden.
quelle