2015-01-07 2 views
5

numpy의 intc 데이터 유형에 문제가 있습니다. 내 컴퓨터에서 Linux 64 비트를 실행 중입니다. 32 비트 제한을 초과하는 인덱스를 가진 scipy.sparse.csr_matrix를 인스턴스화해야합니다. 나는 그 같은 CSR 행렬을 인스턴스화 한numpy의 intc 값을 32 비트에서 64 비트로 변경하는 방법

: 예를 들어

matrix=csr_matrix((2, 4132009369),dtype=int8) 

이 나에게 문제를 gaves 없습니다. 그런 다음 코드의 어딘가에서 다음과 같이 가정 해 보겠습니다.

matrix[0, 2401803431]=1 

그리고 나는 ValueError: column index values must be >= 0이 있습니다. 나는 코드를 디버그하고 scipy의 csr_matrix 구현에서 어딘가에서 컬럼 값이 numpy의 intc 데이터 유형으로 변환된다는 것을 발견했다. 값은 2^31-1입니다

>>> import numpy as np 
>>> info=np.iinfo(np.intc) 
>>> info.max 
2147483647 

것을 : 그것을 보장하기 위해 내가 다음 코드를 체크 및 INTC 문제입니다. 32 비트 intc에서 64 비트 intc로가는 방법이 있다면 제안 사항이 있습니까? 이 페이지에서 http://docs.scipy.org/doc/numpy/user/basics.types.html라고 말하면

대단히 감사합니다! 최신 버전으로 scipy 라이브러리를 업그레이드하여 해결

답변

2

나는 (이전에 지금은 1.4, 1.3를했다)

+1

나는 당신이 0.13에서 0.14로 업그레이드 뜻 생각합니다. –

관련 문제