np.linspace(0, 1, 10)
дает десять значений , включая обе конечные точки :
>>> np.linspace(0, 1, 10)
array([0. , 0.11111111, 0.22222222, 0.33333333, 0.44444444,
0.55555556, 0.66666667, 0.77777778, 0.88888889, 1. ])
Когда вы возводите эти значения в квадрат, вы получаете числа, которые видите.Это называется «проблема ограждения» ;10 постов дают вам только 9 панелей:
1 2 3 4 5 6 7 8 9 10
|-|-|-|-|-|-|-|-|-|
1 2 3 4 5 6 7 8 9
, поэтому каждый шаг на самом деле 1/9, а не 1/10.Я думаю, что вы хотели:
>>> np.linspace(0, 1, 11) ** 2
array([0. , 0.01, 0.04, 0.09, 0.16, 0.25, 0.36, 0.49, 0.64, 0.81, 1. ])
В качестве альтернативы, если вы не хотите 1.
в конце, вы можете явно исключить конечную точку для документов :
>>> np.linspace(0, 1, 10, endpoint=False) ** 2
array([0. , 0.01, 0.04, 0.09, 0.16, 0.25, 0.36, 0.49, 0.64, 0.81])