python matplotlib f(x ^ 2)图

纯粹出于好奇,我想知道为什么会发生以下情况。我只是在做一些展示指数函数的基本图解,但结果却很奇怪:

import numpy as np
import matplotlib.pyplot as plt

plt.plot(np.arange(0, 1000000, 1)**2)
plt.show()

enter image description here

评论
  • 忆Oo红颜
    忆Oo红颜 回复

    您正在达到可以将数字存储为整数的极限。在我的机器上,该数组作为int32生成,最多可以存储数字2147483483647,其平方根为46340.95,该数字远低于范围中的最大值。

    因此numpy将值回滚到可以由int存储的最小值,达到最大值,然后再次进行回滚。它的频率增加,因为您正在对指数建模,并且数字越来越大。

    如果将dtype更改为int64,则将获得期望的完整指数曲线。