Punkty pośrednie w tablicy z pojedynczymi punktami

Punkty pośrednie w tablicy z pojedynczymi punktami
BI
  • Rejestracja:ponad 9 lat
  • Ostatnio:około rok
  • Postów:47
0

Hej wszystkim,

Mam dwie tablice w których znajdują się współrzędne x,y dla kilku punktów z większego zakresu. Czyli jeśli założymy, że mamy zakres od 0 do 1000 w osi x, punkty nie wypełniają całego zakresu tylko są rozłożone w ten sposób:

Kopiuj
print(x)
[30, 162, 189, 298, 314, 402, 430, 459, 557, 576, 639, 687, 698, 753, 795, 826]
print(y)
[193.34, 327.2, 224.37, 506.09, 106.84, 143.16, 116.36, 134.88, 156.69, 139.14, 182.01, 150.62, 178.96, 130.06, 174.55, 138.2]

Chodzi mi o to, żeby stworzyć tablicę która poza określonymi punktami, wypełnia odpowiednimi wartościami punkty pomiędzy nimi. Oczywiście mogę to zrobić "na piechotę", czyli połączyć punkty w pary i znaleźć funkcje liniową na ich podstawie ale jestem niemal pewny, ze numpy lub inna biblioteka oferuje takie coś w standardzie. Żeby to bardziej zobrazować - mam współrzędne niebieskich punktów, potrzebuje tablicy wszystkich punktów z żółtej linii.

Kopiuj
plot(x,y,'o')
plot(x,y)

screenshot-20221013133743.png

edytowany 2x, ostatnio: Riddle
opiszon
  • Rejestracja:prawie 3 lata
  • Ostatnio:około 2 godziny
  • Postów:780
1

W sensie interpolacja?
https://docs.scipy.org/doc/scipy/reference/generated/scipy.interpolate.interp2d.html

Żeby nie było - absolutnie nie znam się na pytonie/numpy - pierwszy wynik z google w kontekście interpolacji.

edytowany 2x, ostatnio: opiszon
BI
Dokładnie :) wstyd, że zapomniałem podstawowego terminu ze studiów :) btw w tym przypadku potrzebuję interp1d
lion137
  • Rejestracja:około 8 lat
  • Ostatnio:31 minut
  • Postów:4927
0

BI
  • Rejestracja:ponad 9 lat
  • Ostatnio:około rok
  • Postów:47
2

Gdyby kogoś interesowało rozwiązanie, to tak jak koledzy sugerowali - najlepiej użyć SciPy

Kopiuj
f = interpolate.interp1d(x,y)
xnew = range(min(x),max(x))
ynew = f(xnew)
plot (xnew, ynew)

screenshot-20221013143302.png

edytowany 1x, ostatnio: bilborrd

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.