Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Program Python untuk menentukan sama ada matriks yang diberikan adalah matriks jarang

Program Python untuk menentukan sama ada matriks yang diberikan adalah matriks jarang

王林
王林ke hadapan
2023-09-05 14:57:071351semak imbas

Program Python untuk menentukan sama ada matriks yang diberikan adalah matriks jarang

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.

Gunakan Untuk Gelung

Menggunakan untuk gelung kita boleh dengan mudah mengulang elemen tatasusunan dalam python.

Contoh

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")

Output

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.

Contoh

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")

Output

The original matrix: 
[0, 0, 3]
[0, 0, 0]
[1, 8, 0]

The given matrix is a sparse matrix

Menggunakan perpustakaan SciPy

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.

Fungsi

issparse() digunakan untuk menyemak sama ada objek yang diberikan ialah matriks jarang.

Contoh

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")

Output

The original matrix: 
  (0, 2)	3
  (2, 0)	1
  (2, 1)	8

The given matrix is a sparse matrix
Kaedah

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!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam
Artikel sebelumnya:Polytope dalam PythonArtikel seterusnya:Polytope dalam Python