Bagaimana untuk Memilih Lajur Khusus setiap Baris dengan Cekap dalam NumPy Menggunakan Senarai atau Tatasusunan Boolean?

DDD
Lepaskan: 2024-11-01 10:52:30
asal
349 orang telah melayarinya

How to Efficiently Select Specific Columns per Row in NumPy Using Lists or Boolean Arrays?

Memilih Lajur Khusus setiap Baris dalam NumPy Dengan Cekap Menggunakan Senarai atau Tatasusunan Boolean

NumPy menawarkan keupayaan yang luas untuk memanipulasi tatasusunan pelbagai dimensi. Walau bagaimanapun, memilih lajur tertentu berdasarkan senarai indeks untuk setiap baris boleh mencabar dan menuntut penyelesaian yang cekap.

Satu pendekatan untuk menyelesaikan isu ini ialah menggunakan tatasusunan boolean. Setiap lajur tatasusunan boolean boleh mewakili pemilihan yang diingini untuk baris tertentu. Dengan menggunakan pemilihan langsung dengan tatasusunan boolean, lajur tertentu boleh diekstrak dengan cekap. Contohnya:

<code class="python">import numpy as np

a = np.array([1, 2, 3])
b = np.array([[False, True, False], [True, False, False], [False, False, True]])
a[b]
# Output: [2, 4, 9]</code>
Salin selepas log masuk

Sebagai alternatif, anda boleh membuat tatasusunan yang mewakili julat lajur dan menggunakan pemilihan langsung padanya. Pendekatan ini, walau bagaimanapun, mungkin tidak sentiasa optimum.

<code class="python">a = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
a[np.arange(len(a)), [1, 0, 2]]
# Output: [2, 4, 9]</code>
Salin selepas log masuk

Dengan memanfaatkan kaedah ini, adalah wajar untuk memilih lajur khusus setiap baris dengan cekap dalam tatasusunan NumPy, tidak kira sama ada kriteria pemilihan disediakan sebagai senarai indeks atau tatasusunan boolean.

Atas ialah kandungan terperinci Bagaimana untuk Memilih Lajur Khusus setiap Baris dengan Cekap dalam NumPy Menggunakan Senarai atau Tatasusunan Boolean?. 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
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!