Ho una matrice sparsa di grandi dimensioni e voglio ottenere il valore massimo per ogni riga. In numpy, posso chiamare numpy.max (mat, axis = 1), ma non riesco a trovare una funzione simile per la matrice sparsa scipy. Esiste un modo efficace per ottenere il massimo di ogni riga per una matrice sparsa di grandi dimensioni?modo efficiente per ottenere il massimo di ogni riga per matrice sparse di grandi dimensioni
6
A
risposta
4
Se la matrice, consente di chiamare a
, vengono memorizzati in formato CSR, quindi a.data
ha tutte le voci non nulli ordinati per righe e a.indptr
ha l'indice del primo elemento di ogni riga. È possibile utilizzare questo per calcolare ciò che si è dopo come segue:
def sparse_max_row(csr_mat):
ret = np.maximum.reduceat(csr_mat.data, csr_mat.indptr[:-1])
ret[np.diff(csr_mat.indptr) == 0] = 0
return ret
2
Mi sono imbattuto in questo stesso problema. La soluzione di Jaime si interrompe se una qualsiasi delle righe nella matrice è completamente vuota. Ecco una soluzione:
def sparse_max_row(csr_mat):
ret = np.zeros(csr_mat.shape[0])
ret[np.diff(csr_mat.indptr) != 0] = np.maximum.reduceat(csr_mat.data,csr_mat.indptr[:-1][np.diff(csr_mat.indptr)>0])
return ret
Problemi correlati
- 1. Modo efficiente per normalizzare una Scipy Sparse Matrix
- 2. Leggere in modo efficiente file di testo di grandi dimensioni
- 3. Inversione di matrici sparse di grandi dimensioni con scipy
- 4. Modo efficiente per analizzare grandi quantità di dati?
- 5. Modo efficiente di convertire matrici di adiacenza di grandi dimensioni in liste di bordi in MATLAB?
- 6. Come dividere in modo efficiente file di grandi dimensioni
- 7. Il modo più efficiente per cercare in un file di grandi dimensioni
- 8. Come ottenere la somma di ogni riga e somma di ogni colonna nelle matrici sparse di Scipy (csr_matrix e csc_matrix)?
- 9. Un buon modo per visualizzare immagini di grandi dimensioni online
- 10. Argmax di ogni riga o colonna nella matrice sparsa scipy
- 11. Modo efficiente per accedere a set di dati di grandi dimensioni da visualizzare su Leaflet
- 12. Il modo più efficace per trovare corrispondenze parziali di stringhe in file di grandi dimensioni (python)
- 13. Il modo più efficiente per ottenere una riga di dati dal DB in ASP.NET
- 14. Modo efficiente per creare una matrice di circulanti in R
- 15. Qual è il modo migliore per dividere file di grandi dimensioni in Python per il multiprocessing?
- 16. Conversione pitone sparse dict matrice per SciPy matrici sparse
- 17. Trovare il valore massimo e minimo di ogni colonna e poi trovare il valore massimo e minimo di ogni riga
- 18. LINQ - Scrittura di un metodo di estensione per ottenere la riga con il valore massimo per ogni gruppo
- 19. Ottimizzazione delle prestazioni iOS: il modo più rapido per ottenere il colore dei pixel per le immagini di grandi dimensioni
- 20. Qual è il modo più efficiente per gestire dataset di grandi dimensioni con Javascript/jQuery in IE?
- 21. Come analizzare in modo efficiente file di testo di grandi dimensioni in Ruby
- 22. Paging efficiente con tabelle di grandi dimensioni in sql 2008
- 23. Trova riga con valore massimo per ogni chiave
- 24. Istogramma di Numpy di array di grandi dimensioni
- 25. modo efficiente per convertire delimitatore stringa separata per NumPy matrice
- 26. moltiplicazione matrice sparse veloce
- 27. Il modo più efficiente per creare miniature?
- 28. il modo più veloce per creare checksum per file di grandi dimensioni in python
- 29. modo Efficiente di dividere un file di testo di grandi dimensioni in python
- 30. Il modo più efficiente per generare una nuova riga
questo viene a mancare quando nessuna delle voci di dati sono superiori a 0: https://gist.github.com/jni/6120922#file-example-py – Juan