Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Melakukan Penggulungan Bebas Baris Matriks Menggunakan Pengindeksan Lanjutan dalam NumPy?
Rows Rolling Matrix Independent using Advanced Indexing
Memandangkan matriks A dan array r yang mengandungi nilai roll untuk setiap baris, matlamat anda adalah untuk gulung setiap baris A secara bebas menggunakan nilai gulungan tersebut.
Pendekatan paling berkesan untuk mencapai ini ialah melalui pengindeksan lanjutan dalam NumPy. Teknik ini melibatkan membina meshgrid baharu yang menggunakan nilai gulungan pada lajur A. Begini cara anda boleh melaksanakannya:
<code class="python">import numpy as np # Define the matrix A and roll values r A = np.array([[4, 0, 0], [1, 2, 3], [0, 0, 5]]) r = np.array([2, 0, -1]) # Create a meshgrid of rows and negative shifted columns rows, column_indices = np.ogrid[:A.shape[0], :A.shape[1]] r[r < 0] += A.shape[1] column_indices = column_indices - r[:, np.newaxis] # Use advanced indexing to apply the roll values result = A[rows, column_indices] # Print the result print(result)</code>
Pendekatan ini menggunakan indeks lajur anjakan negatif untuk memastikan pengindeksan yang sah dan menggunakan nilai gulungan melalui meshgrid, menghasilkan matriks dengan baris bergolek bebas.
Atas ialah kandungan terperinci Bagaimana untuk Melakukan Penggulungan Bebas Baris Matriks Menggunakan Pengindeksan Lanjutan dalam NumPy?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!