Matriks ialah tatasusunan segi empat tepat di mana satu set nombor disusun dalam baris dan lajur. Ia dipanggil matriks m X n, di mana m dan n ialah dimensi.
Jika matriks mengandungi kurang unsur bukan sifar daripada unsur sifar, ia dipanggil matriks jarang.
[0, 0, 3, 0, 0] [0, 1, 0, 0, 6] [1, 0, 0, 9, 0] [0, 0, 2, 0, 0]
Matriks di atas adalah matriks 4X5, kebanyakan nombor di sini adalah sifar. Hanya beberapa elemen bukan sifar, jadi kita boleh menganggapnya sebagai matriks jarang.
Untuk menyemak sama ada matriks yang diberikan adalah jarang, kita perlu membandingkan jumlah bilangan elemen dan sifar. Jika bilangan unsur sifar melebihi separuh daripada unsur dalam matriks. Kemudian kita boleh memanggil matriks yang diberikan sebagai matriks jarang.
(m * n)/2
Mari bincangkan cara yang berbeza untuk menentukan sama ada matriks tertentu adalah jarang.
Menggunakan untuk gelung kita boleh dengan mudah mengulang elemen tatasusunan dalam python.
Mula-mula, kami akan mengulangi baris matriks dan mengira bilangan sifar yang terdapat dalam setiap baris. Nilai kiraan kemudiannya akan disimpan dalam pembolehubah kaunter.
Selepas itu, kami membandingkan nilai dalam pembolehubah pembilang dengan separuh elemen dalam matriks untuk menentukan sama ada matriks yang diberikan adalah matriks jarang.
def isSparse(array, m, n): counter = 0 # Count number of zeros for i in range(0, m): for j in range(0, n): if (array[i][j] == 0): counter = counter + 1 return (counter > ((m * n) // 2)) arr = [[0, 0, 3], [0, 0, 0], [1, 8, 0]] print("The original matrix: ") for row in arr: print(row) print() # check if the given matrix is sparse matrix or not if (isSparse(arr, len(arr), len(arr[0]))): print("The given matrix is a sparse matrix") else: print("The given matrix is not a sparse matrix")
The original matrix: [0, 0, 3] [0, 0, 0] [1, 8, 0] The given matrix is a sparse matrix
Matriks di atas adalah matriks jarang.
Dalam contoh ini, kami akan menggunakan kaedah list.count() untuk mengira elemen sifar setiap baris dalam gelung dan menyimpan kiraan dalam pembolehubah pembilang.
def isSparse(array, m, n): counter = 0 # Count number of zeros for i in array: counter += i.count(0) return (counter > ((m * n) // 2)) arr = [[0, 0, 3], [0, 0, 0], [1, 8, 0]] print("The original matrix: ") for row in arr: print(row) print() # check if the given matrix is sparse matrix or not if (isSparse(arr, len(arr), len(arr[0]))): print("The given matrix is a sparse matrix") else: print("The given matrix is not a sparse matrix")
The original matrix: [0, 0, 3] [0, 0, 0] [1, 8, 0] The given matrix is a sparse matrix
Dengan menggunakan perpustakaan SciPy dalam Python, kami boleh mencipta matriks jarang. Dalam contoh berikut, kami menggunakan fungsi csr_matrix() untuk mencipta matriks jarang dalam format baris jarang dimampatkan.
Fungsiissparse() digunakan untuk menyemak sama ada objek yang diberikan ialah matriks jarang.
Pada mulanya, kami akan mencipta tatasusunan menggunakan senarai bersarang dan kemudian menukarnya kepada matriks jarang menggunakan kaedah csr_matrix().
from scipy.sparse import issparse, csr_matrix arr = [[0, 0, 3], [0, 0, 0], [1, 8, 0]] matrix = csr_matrix(arr) print("The original matrix: ") print(matrix) print() # check if the given matrix is sparse matrix or not if (issparse(matrix)): print("The given matrix is a sparse matrix") else: print("The given matrix is not a sparse matrix")
The original matrix: (0, 2) 3 (2, 0) 1 (2, 1) 8 The given matrix is a sparse matrix
csr_matrix() hanya menyimpan titik data (elemen bukan sifar) dalam ingatan.
Nota - kaedah issparse() tiada kaitan dengan berapa banyak elemen yang ada pada matriks input. Sebaliknya, ia menyemak sama ada objek yang diberikan adalah contoh spmatrix.
Atas ialah kandungan terperinci Program Python untuk menentukan sama ada matriks yang diberikan adalah matriks jarang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!