Home » python » SciPy Sparse Data: Contoh Code dan Cara Membuatnya

SciPy Sparse Data: Contoh Code dan Cara Membuatnya

by Catur Kurnia Sari
by Catur Kurnia Sari

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.

You may also like