Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Menyimpan Berbilang Jenis Data dalam Tatasusunan NumPy Tunggal dengan Jenis Data Asal yang Dipelihara?
Menyimpan Pelbagai Jenis Data dalam Tatasusunan NumPy Tunggal
Anda berhadapan dengan cabaran untuk menggabungkan dua tatasusunan, satu mengandungi rentetan dan satu lagi mengandungi integer, ke dalam tatasusunan tunggal. Walaupun pendekatan semasa anda menggunakan np.concatenate menghasilkan keseluruhan tatasusunan ditukar kepada rentetan dtype, anda mencari penyelesaian yang lebih cekap.
Rekod Tatasusunan:
Satu pendekatan yang berkesan ialah memanfaatkan tatasusunan rekod. Ini membolehkan anda membuat "lajur" yang mengekalkan jenis data asalnya. Tatasusunan rekod dibina menggunakan fungsi numpy.rec.fromarrays dan ambil tatasusunan yang mewakili setiap lajur bersama-sama dengan nama medannya yang sepadan.
<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')) print(records) # rec.array([('a', 0), ('b', 1), ('c', 2), ('d', 3), ('e', 4)], # dtype=[('keys', '|S1'), ('data', '<i8')])</code>
Tatasusunan Berstruktur:
Satu lagi pilihan ialah menggunakan tatasusunan berstruktur, yang diisytiharkan dengan jenis data tersuai. Walaupun mereka kekurangan akses atribut yang disediakan oleh tatasusunan rekod, mereka menawarkan perwakilan yang lebih cekap.
<code class="python">arr = np.array([('a', 0), ('b', 1)], dtype=([('keys', '|S1'), ('data', 'i8')])) print(arr) # array([('a', 0), ('b', 1)], # dtype=[('keys', '|S1'), ('data', '<i8')])</code>
Dengan menggunakan tatasusunan rekod atau berstruktur bergantung pada keperluan khusus anda, anda boleh menyimpan berbilang jenis data dengan berkesan dalam satu NumPy tatasusunan sambil mengekalkan djenis asalnya.
Atas ialah kandungan terperinci Bagaimana untuk Menyimpan Berbilang Jenis Data dalam Tatasusunan NumPy Tunggal dengan Jenis Data Asal yang Dipelihara?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!