Ich stehe vor einem Problem mit dem intc Datentyp von numpy. Ich verwende ein Linux 64 Bit auf meinem Rechner. Ich muss eine scipy.sparse.csr_matrix mit Indizes jenseits der 32-Bit-Grenze instanziieren. Zum Beispiel:Wie man den intc Wert von numpy von 32 auf 64 bit ändert
matrix=csr_matrix((2, 4132009369),dtype=int8)
Dieses gaves mich kein Problem:
ich eine csr Matrix wie das instanziiert haben. Dann irgendwo im Code, die ich tun, sagen wir mal:
matrix[0, 2401803431]=1
Und ich habe ValueError: column index values must be >= 0
. Ich debugge den Code und ich entdeckte, dass irgendwo in der Scipy-Implementierung von csr_matrix der Spaltenwert in den intc-Datentyp von numpy konvertiert wird. es um sicherzustellen, dass ein intc Problem, das ich mit dem folgenden Code geprüft:
>>> import numpy as np
>>> info=np.iinfo(np.intc)
>>> info.max
2147483647
diesen Wert 2^31-1 ist. Also, haben Sie einen Vorschlag, wenn es eine Möglichkeit gibt, von 32-Bit-Intc zu einem 64-Bit-Intc zu gehen? Auf dieser Seite http://docs.scipy.org/doc/numpy/user/basics.types.html es sagt, dass
intc Identical to C int (normally int32 or int64)
Vielen Dank für Ihre Zeit!
Ich glaube, Sie Sie 0,13-0,14 Upgrade bedeuten. –