gpt4 book ai didi

python - 为什么我的 NumPy 日志空间给我一个无穷大数组?

转载 作者:行者123 更新时间:2023-12-04 00:13:30 25 4
gpt4 key购买 nike

为了得到一个 1000 到 1000000000 的对数数组,有 23 个点,我用 Python 编写了这段代码:

import numpy as np

x4 = np.logspace(start=1000, stop=1000000000, num=23, base=10)
print(x4)
结果在哪里:
[inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf]
你如何解决这个问题,我在代码中做错了什么?

最佳答案

np.logspace 不是在做你认为它在做的事情。您正在期待 np.geomspace 的效果:

10**np.linspace(np.log(1000), np.log10(1000000000), 23)
事实上,你正在得到
10**np.linspace(1000, 1000000000, 23)
从文档:

In linear space, the sequence starts at base ** start (base to the power of start) and ends with base ** stop (see endpoint below).


所以你可能想要
np.logspace(3, 9, num=23, base=10)
或者,
np.geomspace(10**3, 10**9, 23)
结果的确切原因可以通过 np.finfo 看到。 :
>>> np.finfo(np.float_)
finfo(resolution=1e-15, min=-1.7976931348623157e+308, max=1.7976931348623157e+308, dtype=float64)
10**1000 > 1.7976931348623157e+308 , inf只是预期溢出的信号。

关于python - 为什么我的 NumPy 日志空间给我一个无穷大数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66127586/

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