Apa itu Sparse Data?
Sparse Data adalah data yang sebagian besar memiliki elemen yang tidak digunakan (elemen yang tidak membawa informasi apa pun).
Ini bisa berupa array seperti ini:
[1, 0, 2, 0, 0, 3, 0, 0, 0, 0, 0, 0]
Sparse Data: adalah kumpulan data yang sebagian besar nilai itemnya nol.
Dense Array: kebalikan dari sparse array: data yang sebagian besar nilainya bukan nol.
Dalam komputasi ilmiah, ketika kita akan berurusan dengan turunan parsial dalam aljabar linier, dan akan menemukan sparse data.
Bagaiaman cara Bekerja Dengan Sparse Data?
SciPy memiliki modul scipy.sparse yang menyediakan fungsi untuk menangani sparse data.
Terutama ada dua jenis matriks sparse yang digunakan:
CSC – Compressed Sparse Column. Untuk aritmatika yang efisien, pemotongan kolom cepat.
CSR – Compressed Sparse Row. Untuk pengirisan baris cepat, product vektor matriks lebih cepat
Kita akan menggunakan matriks CSR dalam tutorial ini.
Matriks CSR
Kita bisa membuat matriks CSR dengan melewatkan array ke dalam function scipy.sparse.csr_matrix().
Contoh:
Buat matriks CSR dari array
import numpy as np from scipy.sparse import csr_matrix arr = np.array([0, 0, 0, 0, 0, 1, 1, 0, 2]) print(csr_matrix(arr))
Contoh di atas mengembalikan:
(0, 5) 1 (0, 6) 1 (0, 8) 2 |
Dari hasil tersebut dapat dilihat bahwa terdapat 3 item yang bernilai.
Item 1. berada di baris 0 posisi 5 dan memiliki nilai 1.
Item 2. berada di baris 0 posisi 6 dan memiliki nilai 1.
Item 3. berada di baris 0 posisi 8 dan memiliki nilai 2.
Metode Matriks Sparse
Melihat data yang disimpan (bukan item nol) dengan properti data.
Contoh:
import numpy as np from scipy.sparse import csr_matrix arr = np.array([[0, 0, 0], [0, 0, 1], [1, 0, 2]]) print(csr_matrix(arr).data)
Menghitung nonzeros dengan metode count_nonzero().
Contoh:
import numpy as np from scipy.sparse import csr_matrix arr = np.array([[0, 0, 0], [0, 0, 1], [1, 0, 2]]) print(csr_matrix(arr).count_nonzero())
Menghapus zero-entries dari matriks dengan metode elimin_zeros().
Contoh:
import numpy as np from scipy.sparse import csr_matrix arr = np.array([[0, 0, 0], [0, 0, 1], [1, 0, 2]]) mat = csr_matrix(arr) mat.eliminate_zeros() print(mat)
Menghilangkan entri duplikat dengan metode sum_duplicates().
Contoh:
Menghilangkan duplikat dengan menambahkannya:
import numpy as np from scipy.sparse import csr_matrix arr = np.array([[0, 0, 0], [0, 0, 1], [1, 0, 2]]) mat = csr_matrix(arr) mat.sum_duplicates() print(mat)
Mengonversi dari csr ke csc dengan metode tocsc().
Contoh:
import numpy as np from scipy.sparse import csr_matrix arr = np.array([[0, 0, 0], [0, 0, 1], [1, 0, 2]]) newarr = csr_matrix(arr).tocsc() print(newarr)
Catatan: Terlepas dari operasi spesifik sparse yang disebutkan, matriks sparse mendukung semua operasi yang didukung matriks normal, mis. membentuk kembali, menjumlahkan, aritmatika, menyiarkan, dll.