次の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])])
これにより、次の出力が得られます
<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
私が持っているデータは、いくつかの入力値の結果です。それらの1つはx値です。他の入力値には、他にもいくつかの次元(yなど)があります。出力値(z)が1.00より大きくなり、他のディメンションを固定してx値を変化させたときに知りたい。上記の2次元の例では、[1.03 1.32]という答えが得られます。xの値が1.03の場合、y = 1の場合、zの値は1.00になり、xの値が1.32の場合、y = 2の場合、zの値は1.00になります。
編集:出力zはxの増加に伴って大きくなるため、zが出力として1.0になる点は1つだけです。
xarrayでこれを実現する効率的な方法はありますか?実際のテーブルははるかに大きく、4つの入力(ディメンション)があります。
助けてくれてありがとう!