Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Menggabungkan Tatasusunan NumPy dengan Jenis Data Berbeza Semasa Memelihara Jenis Data?

Bagaimana untuk Menggabungkan Tatasusunan NumPy dengan Jenis Data Berbeza Semasa Memelihara Jenis Data?

Susan Sarandon
Susan Sarandonasal
2024-10-21 17:59:18622semak imbas

How to Combine NumPy Arrays with Different Datatypes While Preserving Data Types?

Menggabungkan Tatasusunan dengan Pelbagai Jenis Data dalam NumPy

Keinginan untuk menggabungkan tatasusunan yang mengandungi jenis data yang berbeza ke dalam tatasusunan tunggal dengan jenis data yang sepadan dalam setiap lajur menimbulkan satu cabaran. Pendekatan biasa, menggunakan np.concatenate(), malangnya menukarkan keseluruhan tatasusunan kepada jenis data rentetan, yang membawa kepada ketidakcekapan memori.

Untuk mengatasi had ini, penyelesaian yang berdaya maju melibatkan penggunaan tatasusunan rekod atau tatasusunan berstruktur.

Tatasusunan Rekod

Tatasusunan rekod membenarkan medan data individu diakses melalui atribut. Dengan menyatakan jenis data bagi setiap medan, berbilang jenis data boleh digabungkan dalam tatasusunan tunggal:

<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)</code>

Output:

rec.array([('a', 0), ('b', 1), ('c', 2), ('d', 3), ('e', 4)], 
      dtype=[('keys', '|S1'), ('data', '<i8')])

Tatasusunan Berstruktur

Tatasusunan berstruktur adalah serupa, menawarkan keupayaan untuk menentukan jenis data setiap lajur. Walau bagaimanapun, mereka tidak menyokong akses atribut seperti tatasusunan rekod:

<code class="python">arr = np.array([('a', 0), ('b', 1)], 
                      dtype=([('keys', '|S1'), ('data', 'i8')]))

print(arr)</code>

Output:

array([('a', 0), ('b', 1)], 
      dtype=[('keys', '|S1'), ('data', '<i8')])

Memilih Antara Tatasusunan Rekod dan Berstruktur

Pilihan antara tatasusunan rekod dan tatasusunan berstruktur bergantung pada kes penggunaan individu. Tatasusunan rekod memberikan kemudahan dengan akses atribut, manakala tatasusunan berstruktur mungkin lebih disukai untuk struktur data yang lebih kompleks. Kedua-dua pendekatan menawarkan cara yang mudah untuk menggabungkan tatasusunan dengan jenis data yang berbeza dalam NumPy, memberikan fleksibiliti dan kecekapan dalam manipulasi data.

Atas ialah kandungan terperinci Bagaimana untuk Menggabungkan Tatasusunan NumPy dengan Jenis Data Berbeza Semasa Memelihara Jenis Data?. 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