Xarray

Python में Dask के साथ Parallel Programming

James Fulton

Climate Informatics Researcher

Xarray - pandas जैसा, अधिक dimensions में

 

pandas
  • सारणीबद्ध डेटा पर इंडेक्स लेबल लगाता है

 

Xarray
  • उच्च-आयामी arrays पर इंडेक्स लेबल लगाता है
Python में Dask के साथ Parallel Programming

DataFrame

चार कॉलम से बना एक DataFrame.

Python में Dask के साथ Parallel Programming

DataSet

तीन DataArrays से बना एक DataSet

Python में Dask के साथ Parallel Programming

Zarr से DataSet लोड करना

import xarray as xr
ds = xr.open_zarr("data/era_eu.zarr")


print(ds)
<xarray.Dataset>
Dimensions:  (lat: 30, lon: 45, time: 504)
Coordinates:
  * lat      (lat) float64 35.5 36.5 37.5 38.5 39.5 ... 60.5 61.5 62.5 63.5 64.5
  * lon      (lon) float64 -14.5 -13.5 -12.5 -11.5 -10.5 ... 26.5 27.5 28.5 29.5
  * time     (time) datetime64[ns] 1979-05-31 1979-06-30 ... 2021-04-30
Data variables:
    precip   (time, lat, lon) float32 dask.array<chunksize=(12, 15, 15), ... >
    temp     (time, lat, lon) float32 dask.array<chunksize=(12, 15, 15), ... >
Python में Dask के साथ Parallel Programming

DataFrame बनाम DataSet

pandas DataFrame
# कोई खास तारीख चुनें
df.loc['2020-01-01']

# इंडेक्स नंबर से चुनें
df.iloc[0]

# कॉलम चुनें
df['column1']
Dask DataSet
# कोई खास तारीख चुनें
ds.sel(time='2020-01-01')

# इंडेक्स नंबर से चुनें
ds.isel(time=0)

# वैरिएबल चुनें
ds['variable1']
Python में Dask के साथ Parallel Programming

DataFrame बनाम DataSet

pandas DataFrame
# गणितीय ऑपरेशंस करें
df.mean()




# Groupby और mean df.groupby(df['time'].dt.year).mean()
# Rolling mean rolling_mean = df.rolling(5).mean()
Dask DataSet
# गणितीय ऑपरेशंस करें
ds.mean()
ds.mean(dim='dim1')
ds.mean(dim=('dim1', 'dim2'))


# Groupby और mean ds.groupby(ds['time'].dt.year).mean()
# Rolling mean rolling_mean = ds.rolling(dim1=5).mean()
rolling_mean.compute()
Python में Dask के साथ Parallel Programming

Plotting

ds['variable'].plot()
  • 1D होने पर line plot बनता है
  • 2D होने पर heatmap बनती है
  • 3D+ होने पर histogram बनता है

उदाहरण एक उदाहरण line plot उत्तरी फ़िनलैंड के एक स्थान पर Great Cold Outbreak के आसपास कुछ वर्षों की तापमान श्रृंखला दिखाता है.

Python में Dask के साथ Parallel Programming

Plotting

ds['variable'].plot()
  • 1D होने पर line plot बनता है
  • 2D होने पर heatmap बनती है
  • 3D+ होने पर histogram बनता है

उदाहरण एक उदाहरण heatmap जनवरी में पूरे यूरोप का औसत तापमान दिखाती है.

Python में Dask के साथ Parallel Programming

Plotting

ds['variable'].plot()
  • 1D होने पर line plot बनता है
  • 2D होने पर heatmap बनती है
  • 3D+ होने पर histogram बनता है

उदाहरण एक उदाहरण histogram पूरे यूरोप के सभी स्थानों पर रिकॉर्ड तापमान का वितरण दिखाता है.

Python में Dask के साथ Parallel Programming

अभ्यास करते हैं!

Python में Dask के साथ Parallel Programming

Preparing Video For Download...