Bagaimana untuk membuat matriks jarang dalam Python?

PHPz
Lepaskan: 2023-09-05 15:49:06
ke hadapan
1240 orang telah melayarinya

Bagaimana untuk membuat matriks jarang dalam Python?

Dalam artikel ini, kami akan menunjukkan kepada anda apa itu matriks jarang dan cara mencipta matriks jarang dalam python.

Apakah matriks jarang?

Matriks jarang ialah matriks di mana kebanyakan elemen adalah 0. Iaitu, matriks mengandungi data untuk beberapa lokasi sahaja. Kebanyakan memori yang digunakan oleh matriks jarang terdiri daripada sifar.

Sebagai contoh -

M = [
   [1, 0, 0, 0],
   [0, 0, 3, 0],
   [0, 0, 0, 0],
   [0, 0, 0, 2]
]
Salin selepas log masuk

Menggunakan tatasusunan 2D untuk mewakili matriks jarang membuang banyak memori kerana sifar dalam matriks tidak berguna dalam kebanyakan kes. Jadi daripada menyimpan sifar bersama-sama dengan unsur bukan sifar, kami hanya menyimpan unsur bukan sifar. Ini melibatkan penggunaan tiga kali ganda untuk menyimpan unsur bukan sifar (baris, lajur, nilai).

Natural Language Processing (NLP) dan pengekodan data kedua-duanya menggunakan banyak matriks jarang. Jika kebanyakan elemen matriks adalah 0, kos penyimpanan untuk menyimpan semua elemen matriks akan menjadi tinggi.

Ini kerana kami hanya mempunyai beberapa titik data dan kebanyakan ruang storan diduduki oleh sifar berlebihan.

Kelebihan matriks jarang

Berikut adalah dua kelebihan utama menggunakan matriks jarang dan bukannya matriks mudah -

  • Penyimpanan - Oleh kerana terdapat kurang unsur bukan sifar daripada sifar, kurang memori boleh digunakan untuk menyimpan elemen ini secara individu.

  • Masa Pengiraan - Masa pengiraan boleh dijimatkan dengan mencipta struktur data secara logik yang merentasi unsur bukan sifar sahaja.

Bagaimana untuk mencipta matriks jarang dalam Python?

ScPy dalam Python menyediakan alatan untuk mencipta matriks jarang menggunakan pelbagai struktur data dan menukar matriks tumpat kepada matriks jarang.

Dalam Python, kita boleh mencipta matriks jarang menggunakan fungsi berikut -

  • csr_matrix() fungsi - Mencipta matriks jarang dalam format baris jarang termampat,

  • csc_matrix() fungsi - Mencipta matriks jarang dalam format lajur jarang mampat. ,,

Kaedah 1. Gunakan fungsi csr_matrix() untuk mencipta matriks jarang

Ia mencipta matriks jarang dalam format baris mampat jarang.

Tatabahasa

scipy.sparse.csr_matrix(shape=None, dtype=None)
Salin selepas log masuk

Parameter

  • bentuk - ia adalah bentuk matriks

  • dtype - Ia adalah jenis data matriks

Algoritma (langkah)

Berikut adalah algoritma/langkah yang perlu diikuti untuk melaksanakan tugas yang diperlukan -

  • Gunakan kata kunci import untuk mengimport modul numpy dengan alias (np).

  • Gunakan kata kunci import untuk mengimport fungsi csr_matrix daripada modul scipy.

  • Gunakan fungsi csr_matrix() untuk mencipta 3 * 3 matriks jarang jenis data int (format row) dan tukar kepada tatasusunan menggunakan fungsi toarray().

  • Cetak matriks jarang yang dihasilkan.

Contoh

Atur cara berikut menggunakan fungsi csr_matrix() untuk mengembalikan matriks jarang (3x3) -

# importing numpy module with an alias name
import numpy as np

# importing csr_matrix function from scipy module
from scipy.sparse import csr_matrix

# Using csr_matrix function to create a 3 * 3 sparse matrix of int datatype
# and converting into array
sparse_matrix = csr_matrix((3, 3), dtype = np.int8).toarray()

# printing the resultant sparse matrix
print("The resultant sparse matrix:\n", sparse_matrix)
Salin selepas log masuk

Output

Apabila dilaksanakan, program di atas akan menjana output berikut -

The resultant sparse matrix:
 [[0 0 0]
 [0 0 0]
 [0 0 0]]
Salin selepas log masuk
Salin selepas log masuk

Kaedah 2. Buat matriks jarang menggunakan fungsi csr_matrix() yang diberi tatasusunan Numpy

Algoritma (langkah)

Berikut adalah algoritma/langkah yang perlu diikuti untuk melaksanakan tugas yang diperlukan -

  • Gunakan kata kunci import untuk mengimport modul numpy dengan alias (np).

  • Gunakan kata kunci import untuk mengimport fungsi csr_matrix daripada modul scipy.

  • Gunakan fungsi numpy.array() untuk mencipta tatasusunan (mengembalikan ndarray. ndarray ialah objek tatasusunan yang memenuhi keperluan yang diberikan)

Contoh

# importing numpy module with alias name
import numpy as np

# importing csr_matrix function from scipy module
from scipy.sparse import csr_matrix

# Giving rows and columns values
rows = np.array([0, 1, 0, 2, 1, 1])
columns = np.array([1, 0, 0, 2, 1, 2])

# Giving array data
arrayData = np.array([1, 3, 2, 5, 7, 6])

# Using csr_matrix function to create a 3x3 sparse matrix
sparse_matrix = csr_matrix((arrayData, (rows, columns)),
   shape = (3, 3)).toarray()

# print the resultant sparse matrix
print("The resultant sparse matrix:\n", sparse_matrix)
Salin selepas log masuk

Output

Apabila dilaksanakan, program di atas akan menjana output berikut -

The resultant sparse matrix:
 [[2 1 0]
 [3 7 6]
 [0 0 5]]
Salin selepas log masuk
Salin selepas log masuk

Kaedah 3. Gunakan fungsi csc_matrix() untuk mencipta matriks jarang

Ia mencipta matriks jarang dalam format lajur jarang termampat.

Tatabahasa

scipy.sparse.csc_matrix(shape=None, dtype=None)
Salin selepas log masuk

Parameter

  • bentuk - ia adalah bentuk matriks

  • dtype - Ia adalah jenis data matriks

Algoritma

Berikut adalah algoritma/langkah yang perlu diikuti untuk melaksanakan tugas yang diperlukan -

  • Gunakan kata kunci import untuk mengimport modul numpy dengan alias (np).

  • Gunakan kata kunci import untuk mengimport fungsi csc_matrix daripada modul scipy.

  • Buat 3*3 matriks jarang jenis data int (lajurformat) menggunakan fungsi csc_matrix() dan tukar kepada tatasusunan menggunakan fungsi toarray().

  • Cetak matriks jarang yang dihasilkan.

Contoh

Atur cara berikut mengembalikan matriks jarang (3x3) dalam format kolumnar menggunakan fungsi csc_matrix() -

# importing numpy module with an alias name
import numpy as np

# importing csc_matrix function from scipy module
from scipy.sparse import csc_matrix

# Using csc_matrix function to create a 3 * 3 sparse matrix of int datatype
# and converting into array
sparse_matrix = csc_matrix((3, 3), dtype = np.int8).toarray()

# printing the resultant sparse matrix
print("The resultant sparse matrix:\n", sparse_matrix)
Salin selepas log masuk

Output

Apabila dilaksanakan, program di atas akan menjana output berikut -

The resultant sparse matrix:
 [[0 0 0]
 [0 0 0]
 [0 0 0]]
Salin selepas log masuk
Salin selepas log masuk

Kaedah 4. Buat matriks jarang menggunakan fungsi csc_matrix() yang diberi tatasusunan Numpy

Contoh

Atur cara berikut mengembalikan matriks jarang (3x3) dalam format lajur integer menggunakan fungsi csc_matrix() -

import numpy as np
# importing csc_matrix function from scipy module
from scipy.sparse import csc_matrix

# Giving rows and columns values
rows = np.array([0, 1, 0, 2, 1, 1])
columns = np.array([1, 0, 0, 2, 1, 2])

# Giving array data
arrayData = np.array([1, 3, 2, 5, 7, 6])

# Using csc_matrix function to create a 3x3 sparse matrix in column format
sparse_matrix = csc_matrix((arrayData, (rows, columns)),
   shape = (3, 3)).toarray()

# print the resultant sparse matrix
print("The resultant sparse matrix:\n", sparse_matrix)
Salin selepas log masuk

Output

Apabila dilaksanakan, program di atas akan menjana output berikut -

The resultant sparse matrix:
 [[2 1 0]
 [3 7 6]
 [0 0 5]]
Salin selepas log masuk
Salin selepas log masuk

Kesimpulan

Dalam tutorial ini, kami mempelajari empat cara berbeza untuk menjana matriks jarang dalam Python. Kami juga mempelajari cara menjana matriks jarang daripada tatasusunan numpy.

Atas ialah kandungan terperinci Bagaimana untuk membuat matriks jarang dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
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