2015-01-07 2 views
5

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のダウンロードライブラリをアップグレードすることで解決

答えて

2

私は(以前に私は今、1.4、1.3を持っていた)

+1

は、私はあなたが0.13から0.14にアップグレード意味だと思います。 –

関連する問題