У меня есть следующий массив данных
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])])
Это дает следующий вывод
<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
или отсортирован ниже с x и выводом (z) рядом для удобства.
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
Данные, которые я имею, являются результатом нескольких входных значений. Одним из них является значение х. Есть несколько других измерений (таких как y) для других входных значений. Я хочу знать, когда мое выходное значение (z) становится больше, чем 1,00, сохраняя другие размеры фиксированными и меняя значение x. В приведенном выше 2-мерном примере я хотел бы получить ответ [1,03 1,32]. Потому что значение 1,03 для x даст мне 1,00 для z, когда y = 1, и значение 1,32 для x даст мне 1,00 для z, когда y = 2.
edit: Поскольку выходной сигнал z будет расти с увеличением x, есть только одна точка, в которой z будет иметь значение 1.0.
Есть ли эффективный способ добиться этого с помощью xarray? Моя фактическая таблица намного больше и имеет 4 входа (измерения).
Спасибо за любую помощь!