I got two arrays after doing some calculation in python.
first one :
**t**: [0, 1.5e-13, 3e-13, 4.5e-13, 6e-13, 7.499999999999999e-13, 8.999999999999999e-13, 1.05e-12, 1.2e-12, 1.35e-12, 1.4999999999999999e-12, 1.6499999999999998e-12, 3e-13, 4.5e-13, 6e-13, 7.499999999999999e-13, 8.999999999999999e-13, 1.05e-12, 1.2e-12, 1.35e-12, 1.4999999999999999e-12]
second one:
**X2**: [2.0000000000000003e-34, 3.953299280814115e-14, -0.16661594736661114, 363384313676.0453, 1.6249307273647528e+24, -2.606395610181476e+37, 1.9393976227227167e+50, -1.0229289218046666e+63, 3.6974904635770745e+75, -3.685245806003695e+87, -7.685163462952308e+100, 8.267305810721622e+113, -0.16661594736661114, 363384313676.0453, 1.6249307273647528e+24, -2.606395610181476e+37, 1.9393976227227167e+50, -1.0229289218046666e+63, 3.6974904635770745e+75, -3.685245806003695e+87, -7.685163462952308e+100]
My code:
from matplotlib import pyplot as plt
from scipy.interpolate import make_interp_spline as sp, BSpline
x_new = np.linspace(min(t), max(t), 300)
spl = sp(t, X2, k=3)
a_BSpline = sp(t, X2)
y_new = spl(x_new)
plt.plot(x_new,y_new)
plt.show()
I am getting error as
ValueError: Expect x to be a 1-D sorted array_like.
So as the ValueError
says, you need two expressions to be true: 1-D
and sorted
. Which corresponds to:
if x.ndim != 1 or np.any(x[1:] <= x[:-1]):
raise ValueError("Expect x to be a 1-D sorted array_like.")
If you check this:
t = np.array([0, 1.5e-13, 3e-13, 4.5e-13, 6e-13, 7.499999999999999e-13, 8.999999999999999e-13, 1.05e-12, 1.2e-12, 1.35e-12, 1.4999999999999999e-12, 1.6499999999999998e-12, 3e-13, 4.5e-13, 6e-13, 7.499999999999999e-13, 8.999999999999999e-13, 1.05e-12, 1.2e-12, 1.35e-12, 1.4999999999999999e-12])
print(t.ndim)
print(np.any(t[1:] <= t[:-1]))
The output will be:
1
True
Which means that your array is 1-D, but not sorted.
Your Problem is, that even if you sort your array by np.sort()
, the error will still rise, because you got numbers in your array which are equal. Therefore the <=
test will still be true.
I would suggest to format()
your numbers so they become distinguishable.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With