Tôi đang gặp phải sự cố với kiểu dữ liệu intc của numpy. Tôi đang chạy một Linux 64 bit trên máy tính của mình. Tôi cần khởi tạo scipy.sparse.csr_matrix với các chỉ mục vượt quá giới hạn 32 bit. Ví dụ:Cách thay đổi giá trị intc của numpy từ 32 đến 64 bit
Tôi đã khởi tạo một ma trận csr như thế:
matrix=csr_matrix((2, 4132009369),dtype=int8)
này gaves tôi không có vấn đề. Sau đó, ở đâu đó trong mã tôi làm, giả sử:
matrix[0, 2401803431]=1
Và tôi có ValueError: column index values must be >= 0
. Tôi gỡ lỗi mã và tôi phát hiện ra rằng một nơi nào đó trong việc thực hiện scipy của csr_matrix giá trị cột được chuyển đổi thành một kiểu dữ liệu intc của numpy. Để đảm bảo đó là sự cố intc tôi đã kiểm tra với mã sau:
>>> import numpy as np
>>> info=np.iinfo(np.intc)
>>> info.max
2147483647
giá trị đó là 2^31-1. Vì vậy, bạn có bất cứ đề nghị nào nếu có một cách để đi từ 32 bit intc đến một intc 64 bit? Trong trang này http://docs.scipy.org/doc/numpy/user/basics.types.html nó nói rằng
intc Identical to C int (normally int32 or int64)
Cảm ơn bạn rất nhiều vì đã dành thời gian!
Tôi nghĩ bạn đã nâng cấp từ 0,13 lên 0,14. –