Wie konvertiert man einen Pandas DataFrame mit fehlenden Werten effizient in ein NumPy-Array?

Mary-Kate Olsen
Freigeben: 2024-11-05 02:42:02
Original
691 Leute haben es durchsucht

How to efficiently convert a Pandas DataFrame with missing values into a NumPy array?

Pandas-Datenrahmen mit fehlenden Werten in NumPy-Array konvertieren

Die effizienteste Methode, einen Pandas-Datenrahmen mit fehlenden Werten in NumPy zu konvertieren Array erfolgt über df.to_numpy(). Es bietet mehrere Vorteile gegenüber älteren Methoden wie df.values, darunter:

  • Gibt konsistent eine Ansicht der zugrunde liegenden Daten zurückum den Speicherverbrauch zu minimieren.
  • Verarbeitet Erweiterungstypendurch Konvertierung in entsprechende NumPy-D-Typen.
  • Behält die ursprünglichen Datentypen beisofern nicht anders angegeben.

Beispiel:

<code class="python">import pandas as pd
import numpy as np

# Create a DataFrame with missing values
df = pd.DataFrame({'A': [np.nan, np.nan, 0.1, 0.1, 0.1, 0.1],
                   'B': [0.2, np.nan, 0.2, 0.2, np.nan, np.nan],
                   'C': [np.nan, 0.5, 0.5, np.nan, 0.5, np.nan]})

# Convert to a NumPy array with missing values represented as `np.nan`
array = df.to_numpy()

# Result:
# array([[ nan,  0.2,  nan],
#        [ nan,  nan,  0.5],
#        [ 0.1,  0.2,  0.5],
#        [ 0.1,  0.2,  nan],
#        [ 0.1,  nan,  0.5],
#        [ 0.1,  nan,  nan]])</code>
Nach dem Login kopieren

D-Typen beibehalten:

To_numpy unterstützt zwar nicht die direkte Beibehaltung von D-Typen, Sie können jedoch np.rec.fromrecords verwenden, um diesen Effekt zu erzielen.

<code class="python"># Create a DataFrame with mixed data types
df = pd.DataFrame({'A': [1, 2, 3],
                   'B': [4, 5, 6],
                   'C': [7.2, 8.1, 9.3]})

# Convert to a structured array with preserved Dtypes
struct_array = np.rec.fromrecords(
    df.reset_index(),
    names=list(df.columns) + ['index']
)

# Result:
# rec.array([('a', 1, 4, 7.2), ('b', 2, 5, 8.1), ('c', 3, 6, 9.3)],
#           dtype=[('index', '<U1'), ('A', '<i8'), ('B', '<i8'), ('C', '<f8')])</code>
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie konvertiert man einen Pandas DataFrame mit fehlenden Werten effizient in ein NumPy-Array?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage