numpyのintcデータ型に問題があります。私はマシン上でLinux 64ビットを実行しています。私は32ビットの限界を超えてインデックスを持つscipy.sparse.csr_matrixをインスタンス化する必要があります。例えば:numpyのintc値を32から64ビットに変更するには
私はそのようなCSRマトリックスをインスタンス化しています
matrix=csr_matrix((2, 4132009369),dtype=int8)
これは私に何の問題gavesません。次にコード内のどこかで、
matrix[0, 2401803431]=1
と私はValueError: column index values must be >= 0
を得ました。コードをデバッグして、scipyのcsr_matrixの実装のどこかで、列の値がnumpyのintcデータ型に変換されていることがわかりました。それを確保するため は、私は次のコードで確認INTCの問題です:
>>> import numpy as np
>>> info=np.iinfo(np.intc)
>>> info.max
2147483647
値は2^31-1であること。 32ビットのintcから64ビットのintcに移行する方法があれば、お勧めはありますか?このページではhttp://docs.scipy.org/doc/numpy/user/basics.types.htmlそれは
intc Identical to C int (normally int32 or int64)
はお時間をありがとうございましたと言います!最新バージョンにscipyのダウンロードライブラリをアップグレードすることで解決
は、私はあなたが0.13から0.14にアップグレード意味だと思います。 –