Sono di fronte a un problema con il tipo di dati intc di numpy. Sto eseguendo un Linux 64 bit sulla mia macchina. Ho bisogno di istanziare una scipy.sparse.csr_matrix con indici oltre il limite di 32 bit. Per esempio:Come modificare il valore intc di numpy da 32 a 64 bit
ho istanziato una matrice CSR del genere:
matrix=csr_matrix((2, 4132009369),dtype=int8)
Questo mi gaves nessun problema. Poi, da qualche parte nel codice che faccio, diciamo:
matrix[0, 2401803431]=1
E ho avuto ValueError: column index values must be >= 0
. Ho eseguito il debug del codice e ho scoperto che da qualche parte nell'implementazione di scsy di csr_matrix il valore della colonna viene convertito nel tipo di dati intc di numpy. Per assicurare che è un problema INTC ho controllato con il seguente codice:
>>> import numpy as np
>>> info=np.iinfo(np.intc)
>>> info.max
2147483647
che valore è 2^31-1. Quindi, avete qualche suggerimento se c'è un modo per passare da intc a 32 bit a intc a 64 bit? In questa pagina http://docs.scipy.org/doc/numpy/user/basics.types.html si dice che
intc Identical to C int (normally int32 or int64)
La ringrazio molto per il vostro tempo!
Credo che si intende è stato aggiornato ,13-,14. –