Poiché si sta eseguendo il taglio delle colonne, potrebbe essere preferibile memorizzare la matrice utilizzando CSC anziché CSR. Ma ciò dipenderebbe da che cosa stai facendo con la matrice.
Per calcolare la media di una colonna in una matrice CSC è possibile utilizzare la funzione mean()
della matrice.
Per calcolare la deviazione standard in modo efficiente sarà necessario uno sforzo leggermente maggiore. Prima di tutto, si supponga di ottenere la vostra colonna di tipo sparse in questo modo:
col = A.getcol(colindex)
quindi calcolare la varianza in questo modo:
N = col.shape[0]
sqr = col.copy() # take a copy of the col
sqr.data **= 2 # square the data, i.e. just the non-zero data
variance = sqr.sum()/N - col.mean()**2
fonte
2013-03-29 11:39:35
[Sommare le voci] (http://docs.scipy.org/doc /scipy/reference/generated/scipy.sparse.csr_matrix.sum.html#scipy.sparse.csr_matrix.sum) e dividere per m * n per calcolare la media. Supponendo che è ciò che la media è per una matrice. Non mi sono mai imbattuto in Matrice significa prima. –
Ciao David, avrei dovuto modificare la mia domanda, sto cercando piuttosto la media e lo standard di un vettore, ma nella sua forma sparsa, c'è un comando in scipy che ti dà quei due valori? – Curious
Quindi, la mia definizione nel commento è accurata? È la somma dei valori 988, divisa per 988? E perché stai usando CSR se lavori con le colonne? –