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

王林
Lepaskan: 2023-09-05 14:57:07
ke hadapan
1425 orang telah melayarinya

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]
Salin selepas log masuk

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
Salin selepas log masuk

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")
Salin selepas log masuk

Output

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

The given matrix is a sparse matrix
Salin selepas log masuk
Salin selepas log masuk

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")
Salin selepas log masuk

Output

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

The given matrix is a sparse matrix
Salin selepas log masuk
Salin selepas log masuk

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")
Salin selepas log masuk

Output

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

The given matrix is a sparse matrix
Salin selepas log masuk
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!

sumber:tutorialspoint.com
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan