加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

如何将numpy的intc值从32位更改为64位

发布时间:2020-12-20 13:46:59 所属栏目:Python 来源:网络整理
导读:我遇到了numpy的intc数据类型的问题.我正在我的机器上运行 Linux 64位.我需要实例化一个索引超过32位限制的scipy.sparse.csr_matrix.例如: 我已经像这样实例化了一个csr矩阵: matrix=csr_matrix((2,4132009369),dtype=int8) 这没有问题.然后,在我做的代码
我遇到了numpy的intc数据类型的问题.我正在我的机器上运行 Linux 64位.我需要实例化一个索引超过32位限制的scipy.sparse.csr_matrix.例如:

我已经像这样实例化了一个csr矩阵:

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

这没有问题.然后,在我做的代码的某处,让我们说:

matrix[0,2401803431]=1

我得到了ValueError:列索引值必须是> = 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库升级到最新版本(之前我有1.3,现在是1.4)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读