Die Verwendung von df.to_numpy() ist die empfohlene Methode, weil Es bietet eine konsistente und zuverlässige Möglichkeit, NumPy-Arrays aus Pandas-Objekten abzurufen. Es ist für Index-, Series- und DataFrame-Objekte definiert und gibt standardmäßig eine Ansicht der zugrunde liegenden Daten zurück, was bedeutet, dass alle am NumPy-Array vorgenommenen Änderungen auch im Pandas-Objekt widergespiegelt werden. Wenn eine Kopie der Daten benötigt wird, kann der Parameter copy=True verwendet werden.
Es ist wichtig zu beachten, dass df.values in der aktuellen Version von Pandas nicht veraltet sein wird, aber Es wird empfohlen, df.to_numpy() für neuen Code zu verwenden und sofort auf die neuere API zu migrieren möglich.
Um die Dtypes beim Konvertieren eines Pandas-Datenrahmens in ein NumPy-Array beizubehalten, kann die Methode DataFrame.to_records() verwendet werden.
pandas als pd importieren<br>numpy importieren als np</p> <p>index = [1, 2, 3, 4, 5, 6, 7]<br>a = [np.nan, np.nan, np.nan, 0.1, 0.1, 0.1, 0.1] <br>b = [0,2, np.nan, 0,2, 0,2, 0,2, np.nan, np.nan]<br>c = [np.nan, 0.5, 0.5, np.nan, 0.5, 0.5, np.nan]<br>df = pd.DataFrame({'A': a, 'B': b, 'C': c}, index=index)<br>df = df.rename_axis('ID')</p> <h1>Konvertieren Sie den DataFrame in ein NumPy-Array mit beibehaltenen dtypes</h1> <p>array = df.to_records()</p> <h1>Drucken Sie NumPy array</h1> <p>print(array)<br>
Die Ausgabe des Codes ist wie folgt:
<br> rec.array([('ID', 'index', 'A', 'B', 'C')]</p> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false"> [1, 'a', nan, 0.2, nan], [2, 'b', nan, nan, 0.5], [3, 'c', nan, 0.2, 0.5], [4, 'd', 0.1, 0.2, nan], [5, 'e', 0.1, 0.2, 0.5], [6, 'f', 0.1, nan, 0.5], [7, 'g', 0.1, nan, nan]), dtype=[('ID', '<i8'), ('index', 'O'), ('A', '<f8'), ('B', '<f8'), ('C', '<f8')])
Wie Sie sehen können, behält das NumPy-Array die dtypes der Spalten im DataFrame bei.
Das obige ist der detaillierte Inhalt vonWie konvertiert man Pandas-DataFrames effizient in NumPy-Arrays?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!