Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana dengan Cekap Menukar Pandas DataFrames kepada NumPy Arrays?

Bagaimana dengan Cekap Menukar Pandas DataFrames kepada NumPy Arrays?

Patricia Arquette
Patricia Arquetteasal
2024-12-20 06:15:10161semak imbas

How to Efficiently Convert Pandas DataFrames to NumPy Arrays?

Tukar bingkai data panda kepada tatasusunan NumPy


Mengapa df.to_numpy() ialah kaedah yang disyorkan


Menggunakan df.to_numpy() ialah kaedah yang disyorkan kerana ia menyediakan cara yang konsisten dan boleh dipercayai untuk mendapatkan tatasusunan NumPy daripada objek panda. Ia ditakrifkan pada objek Indeks, Siri dan DataFrame, dan secara lalai, ia mengembalikan paparan data asas, yang bermaksud bahawa sebarang pengubahsuaian yang dibuat pada tatasusunan NumPy juga akan ditunjukkan dalam objek panda. Jika salinan data diperlukan, copy=Parameter True boleh digunakan.


Adalah penting untuk ambil perhatian bahawa df.values ​​tidak akan ditamatkan dalam versi semasa panda, tetapi adalah disyorkan untuk menggunakan df.to_numpy() untuk kod baharu dan berhijrah ke arah API yang lebih baharu sebaik sahaja mungkin.


Untuk mengekalkan djenis semasa menukar bingkai data panda kepada tatasusunan NumPy, kaedah DataFrame.to_records() boleh digunakan.


import panda sebagai pd
import numpy sebagai np

indeks = [1, 2, 3, 4, 5, 6, 7]
a = [np.nan, np.nan, np.nan, 0.1, 0.1, 0.1, 0.1]
b = [0.2, np.nan, 0.2, 0.2, 0.2, np.nan, np.nan]
c = [np.nan, 0.5, 0.5, np.nan, 0.5, 0.5, np.nan]
df = pd.DataFrame({'A': a, 'B': b, 'C': c}, index=index)
df = df.rename_axis('ID')

Tukar DataFrame kepada tatasusunan NumPy dengan dtypes yang dipelihara

array = df.to_records()

Cetak NumPy tatasusunan

cetak(susun)

Keluaran kod adalah seperti berikut:



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

           [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')])


Seperti yang anda lihat, tatasusunan NumPy mengekalkan djenis lajur dalam DataFrame.

Atas ialah kandungan terperinci Bagaimana dengan Cekap Menukar Pandas DataFrames kepada NumPy Arrays?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn