使用numpy计算9的19次方报错:AttributeError: module 'numpy' has no attribute 'long'
解决numpy 1.24.3中
AttributeError: module 'numpy' has no attribute 'long'的问题 问题原因
numpy 1.20及以上版本已移除np.long这个旧类型别名——它原本对应平台相关的长整数类型(通常是np.int64),因此调用np.long()会触发属性不存在的错误。
解决方案
方案1:直接用Python原生整数计算
9的19次方结果在Python原生整数的范围内,无需依赖numpy即可直接算出精确值:
result = 9**19 print(result) # 输出:1350851717672992089
方案2:使用numpy标准整数类型替代np.long
如果需要numpy类型的结果,可使用np.int64(固定64位整数)或np.int_(平台相关的长整数类型,对应原np.long的功能):
import numpy as np # 用np.int64 np.int64(9**19) # 或用np.int_ np.int_(9**19)
方案3:用numpy幂函数直接计算
直接通过numpy的power函数计算并指定类型,避免先计算Python整数再转换:
import numpy as np np.power(9, 19, dtype=np.int64)
内容的提问来源于stack exchange,提问作者Talha Tayyab
相关产品推荐
相关产品推荐

