gpt4 book ai didi

python - 为什么 numpy 不能计算长对象?

转载 作者:太空狗 更新时间:2023-10-29 22:29:55 24 4
gpt4 key购买 nike

假设我有一个变量,它的类型是“long”

x = 40*2*10**30

如果我随后尝试使用 numpy(导入为 np)获取此变量的日志:

np.log10(x)

我遇到了一个属性错误:

'long' object has no attribute 'log10'.

为了解决这个问题,我可以将变量设置为 float ,它工作得很好,或者使用“数学”包:

math.log10(x)
np.log10(float(x))

我的问题是:math.log10 和 np.log10 有何不同,为什么 np 没有设置为处理“长”类型?

最佳答案

问题在于 numpy 是用 C 编写的,它没有可以处理与常规 python int 类一样大的数字的数据类型。如果你去这里:http://docs.scipy.org/doc/numpy/user/basics.types.html它解释了 numpy 中允许的不同数据类型。请特别注意 int64 dtype,该类型允许的最大数字远小于您输入的整数。然而,float64(相当于 C 中的 double)最多可以处理 11 位指数,这就是为什么当您转换为 float 时没有溢出错误。

关于python - 为什么 numpy 不能计算长对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31613444/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com