Skip to content

Commit be2ff9d

Browse files
keewismax-sixty
authored andcommitted
Examples for quantile (#3576)
* add examples for Dataset.quantile * add examples for DataArray.quantile * add examples for GroupBy.quantile * rename the example sections
1 parent 4c26d6a commit be2ff9d

File tree

3 files changed

+132
-0
lines changed

3 files changed

+132
-0
lines changed

xarray/core/dataarray.py

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2971,6 +2971,43 @@ def quantile(
29712971
See Also
29722972
--------
29732973
numpy.nanpercentile, pandas.Series.quantile, Dataset.quantile
2974+
2975+
Examples
2976+
--------
2977+
2978+
>>> da = xr.DataArray(
2979+
... data=[[0.7, 4.2, 9.4, 1.5], [6.5, 7.3, 2.6, 1.9]],
2980+
... coords={"x": [7, 9], "y": [1, 1.5, 2, 2.5]},
2981+
... dims=("x", "y"),
2982+
... )
2983+
2984+
Single quantile
2985+
>>> da.quantile(0) # or da.quantile(0, dim=...)
2986+
<xarray.DataArray ()>
2987+
array(0.7)
2988+
Coordinates:
2989+
quantile float64 0.0
2990+
>>> da.quantile(0, dim="x")
2991+
<xarray.DataArray (y: 4)>
2992+
array([0.7, 4.2, 2.6, 1.5])
2993+
Coordinates:
2994+
* y (y) float64 1.0 1.5 2.0 2.5
2995+
quantile float64 0.0
2996+
2997+
Multiple quantiles
2998+
>>> da.quantile([0, 0.5, 1])
2999+
<xarray.DataArray (quantile: 3)>
3000+
array([0.7, 3.4, 9.4])
3001+
Coordinates:
3002+
* quantile (quantile) float64 0.0 0.5 1.0
3003+
>>> da.quantile([0, 0.5, 1], dim="x")
3004+
<xarray.DataArray (quantile: 3, y: 4)>
3005+
array([[0.7 , 4.2 , 2.6 , 1.5 ],
3006+
[3.6 , 5.75, 6. , 1.7 ],
3007+
[6.5 , 7.3 , 9.4 , 1.9 ]])
3008+
Coordinates:
3009+
* y (y) float64 1.0 1.5 2.0 2.5
3010+
* quantile (quantile) float64 0.0 0.5 1.0
29743011
"""
29753012

29763013
ds = self._to_temp_dataset().quantile(

xarray/core/dataset.py

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5116,6 +5116,48 @@ def quantile(
51165116
See Also
51175117
--------
51185118
numpy.nanpercentile, pandas.Series.quantile, DataArray.quantile
5119+
5120+
Examples
5121+
--------
5122+
5123+
>>> ds = xr.Dataset(
5124+
... {"a": (("x", "y"), [[0.7, 4.2, 9.4, 1.5], [6.5, 7.3, 2.6, 1.9]])},
5125+
... coords={"x": [7, 9], "y": [1, 1.5, 2, 2.5]},
5126+
... )
5127+
5128+
Single quantile
5129+
>>> ds.quantile(0) # or ds.quantile(0, dim=...)
5130+
<xarray.Dataset>
5131+
Dimensions: ()
5132+
Coordinates:
5133+
quantile float64 0.0
5134+
Data variables:
5135+
a float64 0.7
5136+
>>> ds.quantile(0, dim="x")
5137+
<xarray.Dataset>
5138+
Dimensions: (y: 4)
5139+
Coordinates:
5140+
* y (y) float64 1.0 1.5 2.0 2.5
5141+
quantile float64 0.0
5142+
Data variables:
5143+
a (y) float64 0.7 4.2 2.6 1.5
5144+
5145+
Multiple quantiles
5146+
>>> ds.quantile([0, 0.5, 1])
5147+
<xarray.Dataset>
5148+
Dimensions: (quantile: 3)
5149+
Coordinates:
5150+
* quantile (quantile) float64 0.0 0.5 1.0
5151+
Data variables:
5152+
a (quantile) float64 0.7 3.4 9.4
5153+
>>> ds.quantile([0, 0.5, 1], dim="x")
5154+
<xarray.Dataset>
5155+
Dimensions: (quantile: 3, y: 4)
5156+
Coordinates:
5157+
* y (y) float64 1.0 1.5 2.0 2.5
5158+
* quantile (quantile) float64 0.0 0.5 1.0
5159+
Data variables:
5160+
a (quantile, y) float64 0.7 4.2 2.6 1.5 3.6 ... 1.7 6.5 7.3 9.4 1.9
51195161
"""
51205162

51215163
if isinstance(dim, str):

xarray/core/groupby.py

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -597,6 +597,59 @@ def quantile(self, q, dim=None, interpolation="linear", keep_attrs=None):
597597
--------
598598
numpy.nanpercentile, pandas.Series.quantile, Dataset.quantile,
599599
DataArray.quantile
600+
601+
Examples
602+
--------
603+
604+
>>> da = xr.DataArray(
605+
... [[1.3, 8.4, 0.7, 6.9], [0.7, 4.2, 9.4, 1.5], [6.5, 7.3, 2.6, 1.9]],
606+
... coords={"x": [0, 0, 1], "y": [1, 1, 2, 2]},
607+
... dims=("y", "y"),
608+
... )
609+
>>> ds = xr.Dataset({"a": da})
610+
611+
Single quantile
612+
>>> da.groupby("x").quantile(0)
613+
<xarray.DataArray (x: 2, y: 4)>
614+
array([[0.7, 4.2, 0.7, 1.5],
615+
[6.5, 7.3, 2.6, 1.9]])
616+
Coordinates:
617+
quantile float64 0.0
618+
* y (y) int64 1 1 2 2
619+
* x (x) int64 0 1
620+
>>> ds.groupby("y").quantile(0, dim=...)
621+
<xarray.Dataset>
622+
Dimensions: (y: 2)
623+
Coordinates:
624+
quantile float64 0.0
625+
* y (y) int64 1 2
626+
Data variables:
627+
a (y) float64 0.7 0.7
628+
629+
Multiple quantiles
630+
>>> da.groupby("x").quantile([0, 0.5, 1])
631+
<xarray.DataArray (x: 2, y: 4, quantile: 3)>
632+
array([[[0.7 , 1. , 1.3 ],
633+
[4.2 , 6.3 , 8.4 ],
634+
[0.7 , 5.05, 9.4 ],
635+
[1.5 , 4.2 , 6.9 ]],
636+
637+
[[6.5 , 6.5 , 6.5 ],
638+
[7.3 , 7.3 , 7.3 ],
639+
[2.6 , 2.6 , 2.6 ],
640+
[1.9 , 1.9 , 1.9 ]]])
641+
Coordinates:
642+
* y (y) int64 1 1 2 2
643+
* quantile (quantile) float64 0.0 0.5 1.0
644+
* x (x) int64 0 1
645+
>>> ds.groupby("y").quantile([0, 0.5, 1], dim=...)
646+
<xarray.Dataset>
647+
Dimensions: (quantile: 3, y: 2)
648+
Coordinates:
649+
* quantile (quantile) float64 0.0 0.5 1.0
650+
* y (y) int64 1 2
651+
Data variables:
652+
a (y, quantile) float64 0.7 5.35 8.4 0.7 2.25 9.4
600653
"""
601654
if dim is None:
602655
dim = self._group_dim

0 commit comments

Comments
 (0)