Если я использую код ниже
import numpy as np
xs = [5, 7.5, 10, 15, 30, 90, 270]
ys = [2, 5, 10, 15, 20, 30, 50]
PH = [200, 200, 200, 200, 200, 200, 200]
ys = [((x*100)/ph) for x,ph in zip(ys, PH)]
yData = [round(x,2) for x in ys]
xData = [1/x for x in xs]
xinterp = np.arange(min(xData), max(xData), 0.01)
yinterp = np.interp(xinterp, xData, yData)
print(xinterp)
print(yinterp)
, я получаю:
[0.0037037 0.0137037 0.0237037 0.0337037 0.0437037 0.0537037 0.0637037
0.0737037 0.0837037 0.0937037 0.1037037 0.1137037 0.1237037 0.1337037
0.1437037 0.1537037 0.1637037 0.1737037 0.1837037 0.1937037]
[ 1. 25. 25. 25. 25. 25. 25. 25. 25. 25. 25. 25. 25. 25. 25. 25. 25. 25.
25. 25.]
Однако, если я использую прямые значения fox x и y:
import numpy as np
xData = [0.0037037, 0.0111, 0.0333, 0.0666, 0.1, 0.1333, 0.2]
yData = [2, 5, 10, 15, 20, 30, 50]
xinterp = np.arange(min(xData), max(xData), 0.01)
yinterp = np.interp(xinterp, xData, yData)
print(xinterp)
print(yinterp)
Я получаю ожидаемые значения:
[0.0037037 0.0137037 0.0237037 0.0337037 0.0437037 0.0537037 0.0637037
0.0737037 0.0837037 0.0937037 0.1037037 0.1137037 0.1237037 0.1337037
0.1437037 0.1537037 0.1637037 0.1737037 0.1837037 0.1937037]
[ 2. 5.58641892 7.83867117 10.06061562 11.56211712 13.06361862
14.56512012 16.06342814 17.56043413 19.05744012 21.11222222 24.11522523
27.11822823 30.12104948 33.11955022 36.11805097 39.11655172 42.11505247
45.11355322 48.11205397]
Я не совсем понимаю разницу между необработанными данными и данными, взятыми непосредственно из списка, может ли кто-нибудь мне помочь?