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 라이브러리를 업그레이드하여 해결
나는 당신이 0.13에서 0.14로 업그레이드 뜻 생각합니다. –