Bagaimana untuk Mencipta Tatasusunan NumPy Padat daripada Senarai Panjang Pembolehubah?

Susan Sarandon
Lepaskan: 2024-11-04 08:32:01
asal
903 orang telah melayarinya

How to Create a Dense NumPy Array from Variable-Length Lists?

Menjana Tatasusunan NumPy Padat daripada Senarai Panjang Pembolehubah

Penukaran standard jujukan Python yang mengandungi senarai panjang boleh ubah kepada tatasusunan NumPy mencipta tatasusunan jenis objek. Menguatkuasakan jenis data lain menimbulkan ValueError. Artikel ini menunjukkan kaedah yang cekap untuk menjana tatasusunan NumPy padat jenis int32 dengan mengisi nilai yang tiada dengan pemegang tempat.

Untuk menukar urutan senarai panjang pembolehubah kepada tatasusunan NumPy, seseorang boleh menggunakan itertools.zip_longest fungsi daripada modul itertools. Fungsi ini berulang melalui senarai, berhenti apabila senarai terpendek telah habis. Ia mengisi nilai yang tiada dalam senarai yang lebih panjang dengan nilai pemegang tempat yang ditentukan oleh argumen nilai isian.

Sebagai contoh, pertimbangkan urutan senarai panjang pembolehubah berikut:

v = [[1], [1, 2]]
Salin selepas log masuk

Untuk menjana NumPy padat tatasusunan daripada jujukan ini, dengan nilai pemegang tempat 0, seseorang boleh menggunakan kod berikut:

<code class="python">import itertools
np.array(list(itertools.zip_longest(*v, fillvalue=0))).T</code>
Salin selepas log masuk

Output kod ini akan menjadi tatasusunan NumPy jenis int32, dengan nilai yang tiada digantikan dengan 0:

array([[1, 0],
       [1, 2]])
Salin selepas log masuk

Kaedah ini menyediakan cara yang cekap untuk mengendalikan senarai panjang boleh ubah apabila menukarnya kepada tatasusunan NumPy, memastikan ketekalan jenis data dan mengisi nilai yang tiada dengan ruang letak yang dikehendaki.

Atas ialah kandungan terperinci Bagaimana untuk Mencipta Tatasusunan NumPy Padat daripada Senarai Panjang Pembolehubah?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!