This is an int
vs. float
issue. You're getting integer overflow:
>>> np.int32(100)**6
-727379968
>>> np.float32(100)**6
1000000000000.0
because np.arange(0, 100, 1)
is giving you integers.
You can make them floats however you like-- I usually use np.arange(0, 100, 1.0)
, but to be honest I prefer np.linspace
.
With floats, I get: