Ho una matrice sparsa che sembra essere troppo grande per essere utilizzata in modo efficace in memoria (2000x2500000, float). Posso formarlo in un file sparse lil_array (scipy) ma se provo a generare una colonna o una fila di array sparsi compressi (A.tocsc(), A.tocsr()) la mia macchina esaurisce la memoria (e c'è anche un serio disallineamento tra i dati in un file di testo 4.4G e il file pickelled lil 12G - sarebbe bello avere un formato disco che si avvicina maggiormente alla dimensione dei dati grezzi).Grande su disk array per numpy
Probabilmente mi occuperò di array ancora più grandi in futuro.
Domanda: Qual è il modo migliore per gestire grandi matrici su disco in modo tale che io possa usare le normali funzioni di numpy in modo trasparente. Ad esempio, somme su righe e colonne, prodotti vettoriali, max, min, affettamento ecc.?
È Pytables la strada da percorrere? c'è un buon (veloce) strato middleware di numl-sql? un segreto su disk array incorporato in numpy?
In passato con gli array (leggermente più piccoli) ho sempre messo in cache i risultati calcolati per molto tempo. Funziona quando gli array finiscono per essere < 4G o così, ma non è più sostenibile.
Quando hai messo in ordine il tuo array, hai fatto in modo di usare il protocollo binario? Se si utilizza il protocollo di testo predefinito, questa potrebbe essere la causa dell'enorme dimensione del file. – DaveP