Il formato COO (Coordinate List), in italiano "Lista di Coordinate", è un formato di dati utilizzato per rappresentare matrici sparse, ovvero matrici in cui la maggior parte degli elementi sono zero. È particolarmente utile quando si ha a che fare con matrici di grandi dimensioni dove salvare tutti gli elementi (compresi gli zeri) sarebbe inefficiente sia in termini di memoria che di calcolo.
Come funziona:
Il formato COO memorizza solo gli elementi non nulli della matrice. Per ogni elemento non nullo, vengono memorizzate tre informazioni:
Queste informazioni vengono solitamente memorizzate come tre array paralleli: un array per le righe, un array per le colonne e un array per i valori.
Esempio:
Consideriamo la seguente matrice sparsa:
[[1, 0, 0, 0],
[0, 0, 2, 0],
[0, 0, 0, 3]]
La sua rappresentazione in formato COO sarebbe:
[0, 1, 2]
[0, 2, 3]
[1, 2, 3]
Questo significa che l'elemento in riga 0, colonna 0 ha valore 1; l'elemento in riga 1, colonna 2 ha valore 2; e l'elemento in riga 2, colonna 3 ha valore 3.
Vantaggi:
Svantaggi:
Utilizzo:
Il formato COO è spesso utilizzato come formato intermedio per la costruzione di altri formati di matrici sparse più efficienti, come il formato <a href="https://it.wikiwhat.page/kavramlar/CSR%20(Compressed%20Sparse%20Row)">CSR (Compressed Sparse Row)</a> o il formato <a href="https://it.wikiwhat.page/kavramlar/CSC%20(Compressed%20Sparse%20Column)">CSC (Compressed Sparse Column)</a>, che sono ottimizzati per specifiche operazioni. È comune trovarlo utilizzato in librerie scientifiche e di machine learning per rappresentare e manipolare dati sparsi. L'utilizzo di librerie come <a href="https://it.wikiwhat.page/kavramlar/SciPy">SciPy</a> (in Python) facilita la gestione di matrici sparse in formato COO.