Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Mengindeks Tatasusunan dengan Cekap dengan Teknik NumPy Lanjutan?

Bagaimana untuk Mengindeks Tatasusunan dengan Cekap dengan Teknik NumPy Lanjutan?

Linda Hamilton
Linda Hamiltonasal
2024-11-16 15:51:03913semak imbas

How to Efficiently Index Arrays with Advanced NumPy Techniques?

Mengindeks Tatasusunan dengan Teknik NumPy Lanjutan

Dalam pelbagai senario pengiraan, adalah perlu untuk mengindeks satu tatasusunan berdasarkan nilai yang lain. Pertimbangkan contoh di mana kita mempunyai dua matriks: A dengan nilai arbitrari dan B mengandungi indeks. Objektifnya adalah untuk memilih nilai daripada A seperti yang ditentukan oleh indeks dalam B.

Untuk mencapai ini, NumPy menawarkan kaedah pengindeksan yang berbeza:

1. Pengindeksan Lanjutan:

A[np.arange(A.shape[0])[:, None], B]

Pendekatan pengindeksan ini memulakan tatasusunan baharu menggunakan np.arange untuk mencipta indeks lajur bagi setiap baris. Kemudian, ia menggunakan indeks baris ini sebagai dimensi pertama dan nilai daripada B sebagai dimensi kedua untuk mengekstrak nilai daripada A.

2. Pengindeksan Linear:

m, n = A.shape
out = np.take(A, B + n * np.arange(m)[:, None])

Sebagai alternatif, anda boleh menggunakan pengindeksan linear, dengan m dan n mewakili bentuk A . Ia menggunakan np.take untuk memilih elemen berdasarkan tatasusunan gabungan B dan mengimbangi indeks yang dicipta dengan mendarab n dengan indeks baris daripada np.arange .

Atas ialah kandungan terperinci Bagaimana untuk Mengindeks Tatasusunan dengan Cekap dengan Teknik NumPy Lanjutan?. 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