Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Fungsi Vektor NumPy Boleh Mewajarkan Tatasusunan NumPy dalam Pelbagai Arah dengan Cekap?
Mewajarkan Tatasusunan NumPy dengan Fungsi Vektor Umum
Pengenalan
Menjustifikasi tatasusunan NumPy merujuk kepada mengalihkan elemen bukan sifar ke satu sisi tatasusunan, menjadikannya lebih mudah untuk memanipulasi atau proses. Walaupun fungsi Python yang disediakan memfokuskan pada justifikasi kiri untuk matriks 2D, pendekatan yang lebih cekap dan komprehensif ialah menggunakan fungsi vektor NumPy.
Fungsi Vektor NumPy untuk Justifikasi Array
Fungsi berikut, justify, menyediakan cara umum untuk mewajarkan tatasusunan 2D untuk kedua-dua kiri dan kanan, serta atas dan bawah arah:
import numpy as np def justify(a, invalid_val=0, axis=1, side='left'): if invalid_val is np.nan: mask = ~np.isnan(a) else: mask = a!=invalid_val justified_mask = np.sort(mask,axis=axis) if (side=='up') | (side=='left'): justified_mask = np.flip(justified_mask,axis=axis) out = np.full(a.shape, invalid_val) if axis==1: out[justified_mask] = a[mask] else: out.T[justified_mask.T] = a.T[mask.T] return out
Parameter:
Contoh Penggunaan:
a = np.array([[1, 0, 2, 0], [3, 0, 4, 0], [5, 0, 6, 0], [0, 7, 0, 8]]) justified_array = justify(a, side='left') print(justified_array) # Output: # [[1, 2, 0, 0], # [3, 4, 0, 0], # [5, 6, 0, 0], # [7, 8, 0, 0]]
justified_array = justify(a, axis=0, side='up') print(justified_array) # Output: # [[1, 7, 2, 8], # [3, 0, 4, 0], # [5, 0, 6, 0], # [6, 0, 0, 0]]
Faedah Fungsi NumPy:
Kesimpulan
Fungsi NumPy yang disediakan, justify, menawarkan cara yang teguh dan cekap untuk mewajarkan tatasusunan NumPy. Sifat umum dan pelaksanaan vektor menjadikannya alat serba boleh untuk tugasan manipulasi dan pemprosesan tatasusunan.
Atas ialah kandungan terperinci Bagaimanakah Fungsi Vektor NumPy Boleh Mewajarkan Tatasusunan NumPy dalam Pelbagai Arah dengan Cekap?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!