首頁 >後端開發 >Python教學 >如何有效率地將 Pandas DataFrame 轉換為 NumPy 陣列?

如何有效率地將 Pandas DataFrame 轉換為 NumPy 陣列?

Patricia Arquette
Patricia Arquette原創
2024-12-20 06:15:10161瀏覽

How to Efficiently Convert Pandas DataFrames to NumPy Arrays?

將pandas 資料幀轉換為NumPy 陣列


為什麼df.to_numpy() 是建議方法


為什麼df.to_numpy() 是建議方法


使用df.to_numpy()是推薦的方法,因為它提供了從pandas 物件取得NumPy數組的一致且可靠的方法。它在 Index、Series 和 DataFrame 物件上定義,預設情況下,它會傳回底層資料的視圖,這意味著對 NumPy 陣列所做的任何修改也將反映在 pandas 物件中。如果需要資料的副本,可以使用copy=True參數。

需要注意的是,df.values在目前版本的pandas中不會被棄用,但是建議對新程式碼使用df.to_numpy() 並儘快遷移到較新的API可能。


要將 pandas 資料幀轉換為 NumPy 陣列時保留資料類型,可以使用 DataFrame.to_records() 方法。


將pandas 導入為pd將numpy 導入為np<p><br>索引= [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)</p>df = df.rename_axis('ID')<h1></h1>將DataFrame 轉換為保留dtypes 的NumPy 陣列<p></p>array = df.to_records()<h1></h1>array = df.to_records()<p><br>array = df.to_records()<br><br>array = df.to_records()<br></p>array = df.to_records()<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')])

array = df.to_records()

array = df.to_records()array = df.to_records()array = df。 >印NumPy arrayprint(array)

程式碼輸出如下:

 rec.array([('ID' , '索引', 'A', 'B', 'C')]

如您所見,NumPy 數組保留 DataFrame 中列的 dtypes。

以上是如何有效率地將 Pandas DataFrame 轉換為 NumPy 陣列?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn