Rumah > pembangunan bahagian belakang > Tutorial Python > Memelihara Jenis Data dalam Gabungan Tatasusunan NumPy: Tatasusunan Rekod lwn Tatasusunan Berstruktur

Memelihara Jenis Data dalam Gabungan Tatasusunan NumPy: Tatasusunan Rekod lwn Tatasusunan Berstruktur

Patricia Arquette
Lepaskan: 2024-10-21 18:00:04
asal
473 orang telah melayarinya

Preserving Data Types in NumPy Array Concatenation: Record Arrays vs. Structured Arrays

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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!

sumber:php
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan