Menggabungkan Tatasusunan NumPy dengan Jenis Data Berbeza
Mencipta tatasusunan NumPy tunggal yang menggabungkan data daripada berbilang tatasusunan dengan djenis berbeza boleh menjadi satu cabaran. Satu pendekatan biasa melibatkan penggunaan fungsi concatenate(), tetapi ini boleh mengakibatkan keseluruhan tatasusunan ditukar kepada satu jenis data, seperti rentetan. Ini boleh menjadi tidak cekap dari segi penggunaan memori.
Penyelesaian: Tatasusunan Rekod
Untuk mengekalkan jenis data asal semasa menggabungkan tatasusunan, pertimbangkan untuk menggunakan tatasusunan rekod. Tatasusunan rekod membolehkan anda membuat tatasusunan berstruktur dengan lajur bernama, setiap satu mempunyai jenis datanya sendiri. Pendekatan ini membolehkan anda mengakses lajur individu dengan namanya, sama seperti atribut objek Python.
Untuk mencipta tatasusunan rekod, anda boleh menggunakan fungsi rec.fromarrays() daripada modul numpy:
<code class="python">import numpy as np a = np.array(['a', 'b', 'c', 'd', 'e']) b = np.arange(5) records = np.rec.fromarrays((a, b), names=('keys', 'data'))</code>
Kod ini mencipta tatasusunan rekod bernama rekod dengan dua lajur: 'kunci' dengan jenis data rentetan dan 'data' dengan jenis data integer.
Tatasusunan Berstruktur
Pilihan lain untuk menggabungkan tatasusunan dengan jenis d yang berbeza ialah membuat tatasusunan berstruktur secara langsung. Tatasusunan berstruktur adalah serupa dengan tatasusunan rekod tetapi tidak menyediakan akses atribut kepada lajur individu:
<code class="python">arr = np.array([('a', 0), ('b', 1)], dtype=([('keys', '|S1'), ('data', 'i8')]))</code>
Kod ini mencipta tatasusunan berstruktur bernama arr dengan dua lajur: 'kunci' dengan jenis data rentetan dan 'data ' dengan jenis data integer.
Pendekatan Manakah yang Lebih Baik?
Pendekatan terbaik untuk kes penggunaan khusus anda bergantung pada keperluan anda. Tatasusunan rekod lebih mudah digunakan, terutamanya jika anda perlu mengakses lajur individu mengikut nama. Tatasusunan berstruktur adalah lebih cekap untuk penggunaan memori jika anda tidak memerlukan akses atribut.
Atas ialah kandungan terperinci Memelihara Jenis Data dalam Gabungan Tatasusunan NumPy: Tatasusunan Rekod lwn Tatasusunan Berstruktur. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!