Datenimport mit Genfromtxt

PythonPythonBeginner
Jetzt üben

This tutorial is from open-source community. Access the source code

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Lab werden wir lernen, wie man Daten mit der Funktion numpy.genfromtxt importiert. Diese Funktion ermöglicht es uns, tabellarische Daten aus verschiedenen Quellen zu lesen und in NumPy-Arrays umzuwandeln. Wir werden verschiedene Optionen zur Definition der Eingabe, Aufteilung der Zeilen in Spalten, Auswahl von Spalten, Festlegung des Datentyps und Anpassung der Konvertierung erkunden.

Hinweis: Sie können im 03-io-genfromtxt.ipynb Code schreiben. Einige Druckvorgänge werden in den Schritten weggelassen, und Sie können die Ausgabe nach Bedarf drucken.

Importieren der erforderlichen Bibliotheken

Zunächst importieren wir die erforderlichen Bibliotheken. Wir werden die numpy-Bibliothek verwenden, um Arrays zu erstellen, und das io-Modul aus der io-Bibliothek, um dateiliche Objekte zu erstellen.

import numpy as np
from io import StringIO

Definition der Eingabe

Die Funktion numpy.genfromtxt erfordert als einzigen obligatorischen Parameter die Quelle der Daten. Dies kann ein String, eine Liste von Strings, ein Generator oder ein offenes dateiliches Objekt mit einer read-Methode sein.

data = "1, 2, 3\n4, 5, 6"

Zerteilen der Zeilen in Spalten

Das Argument delimiter wird verwendet, um zu definieren, wie die Zeilen in Spalten aufgeteilt werden sollen. Standardmäßig nimmt numpy.genfromtxt an, dass delimiter=None ist, was bedeutet, dass die Zeile entlang von Leerzeichen (einschließlich Tabulatoren) aufgeteilt wird.

np.genfromtxt(StringIO(data), delimiter=",")

Auswahl von Spalten

Das Argument usecols wird verwendet, um zu wählen, welche Spalten importiert werden sollen. Es akzeptiert eine einzelne Ganzzahl oder eine Sequenz von Ganzzahlen, die den Indizes der zu importierenden Spalten entsprechen.

np.genfromtxt(StringIO(data), usecols=(0, -1))

Festlegen des Datentyps

Das Argument dtype wird verwendet, um zu steuern, wie die Zeichenketten in andere Typen umgewandelt werden. Es kann ein einzelner Typ, eine Sequenz von Typen, eine komma-getrennte Zeichenkette, ein Wörterbuch, eine Sequenz von Tupeln, ein vorhandenes numpy.dtype-Objekt oder None sein, um den Typ aus den Daten selbst zu bestimmen.

np.genfromtxt(StringIO(data), dtype=float)

Anpassen der Umwandlung

Das Argument converters ermöglicht es uns, Umwandlungsfunktionen zu definieren, um komplexere Umwandlungen zu behandeln. Es akzeptiert ein Wörterbuch mit Spaltenindizes oder Spaltennamen als Schlüssel und Umwandlungsfunktionen als Werte.

convertfunc = lambda x: float(x.strip(b"%"))/100.
np.genfromtxt(StringIO(data), converters={1: convertfunc})

Verwenden von fehlenden und auszufüllenden Werten

Die Argumente missing_values und filling_values werden verwendet, um fehlende Daten zu behandeln. Das Argument missing_values wird verwendet, um fehlende Daten zu erkennen, und das Argument filling_values wird verwendet, um einen Wert für fehlende Einträge bereitzustellen.

np.genfromtxt(StringIO(data), missing_values="N/A", filling_values=0)

Verwenden von Kurzschlussfunktionen

Das Modul numpy.lib.npyio bietet Kurzschlussfunktionen, die von numpy.genfromtxt abgeleitet sind. Diese Funktionen haben unterschiedliche Standardwerte und geben entweder ein standardmäßiges NumPy-Array oder ein maskiertes Array zurück.

from numpy.lib.npyio import recfromtxt

recfromtxt(StringIO(data), delimiter=",")

Zusammenfassung

In diesem Lab haben wir gelernt, wie man Daten mit der Funktion numpy.genfromtxt importiert. Wir haben verschiedene Optionen zur Definition der Eingabe, zum Aufteilen der Zeilen in Spalten, zum Auswählen von Spalten, zum Festlegen des Datentyps und zum Anpassen der Umwandlung untersucht. Wir haben auch über die von dem Modul numpy.lib.npyio bereitgestellten Kurzschlussfunktionen gelernt.