Ich habe ein folgendes DataArray
arr = xr.DataArray([[0.33, 0.25],[0.55, 0.60],[0.85, 0.71],[0.92,0.85],[1.50,0.96],[2.5,1.1]],[('x',[0.25,0.5,0.75,1.0,1.25,1.5]),('y',[1,2])])
Dies ergibt die folgende Ausgabe
<xarray.DataArray (x: 6, y: 2)>
array([[0.33, 0.25],
[0.55, 0.6 ],
[0.85, 0.71],
[0.92, 0.85],
[1.5 , 0.96],
[2.5 , 1.1 ]])
Coordinates:
* x (x) float64 0.25 0.5 0.75 1.0 1.25 1.5
* y (y) int32 1 2
oder der Einfachheit halber unten mit x und Ausgabe (z) nebeneinander sortiert.
x z (y=1) z(y=2)
0.25 0.33 0.25
0.50 0.55 0.60
0.75 0.85 0.71
1.00 0.92 0.85
1.25 1.50 0.96
1.50 2.50 1.10
Die Daten, die ich habe, sind das Ergebnis mehrerer Eingabewerte. Einer davon ist der x-Wert. Es gibt mehrere andere Dimensionen (z. B. y) für andere Eingabewerte. Ich möchte wissen, wann mein Ausgabewert (z) größer als 1,00 wird, wobei die anderen Dimensionen festgehalten werden und der x-Wert variiert wird. Im obigen zweidimensionalen Beispiel möchte ich die Antwort [1.03 1.32] erhalten. Weil ein Wert von 1,03 für x 1,00 für z ergibt, wenn y = 1 ist, und ein Wert von 1,32 für x 1,00 für z ergibt, wenn y = 2 ist.
Bearbeiten: Da die Ausgabe z mit zunehmendem x wächst, gibt es nur einen Punkt, an dem z 1.0 als Ausgabe hat.
Gibt es eine effiziente Möglichkeit, dies mit xarray zu erreichen? Meine eigentliche Tabelle ist viel größer und hat 4 Eingänge (Dimensionen).
Vielen Dank für jede Hilfe!