Holoviews: выбор набора данных с уменьшением размера - PullRequest
0 голосов
/ 07 апреля 2020
import numpy as np 
import holoviews as hv
data = np.random.rand(100, 100, 3,10)
times = np.arange(0,10)
ds = hv.Dataset((times,channels,
                 np.linspace(0., 1., 100),
                 np.linspace(0., 1., 100),
                 data),
                kdims=['t', 'c', 'y', 'x'],
                vdims=hv.Dimension('T', range=(0, .9)))
ds.select(c='a',t=0)

возвращает

:Dataset   [t,c,y,x]   (T)

как получить набор данных с одним удаленным измерением, ie

:Dataset   [y,x]   (T)

1 Ответ

0 голосов
/ 07 апреля 2020

решение состоит в том, чтобы определить набор данных как xarray и преобразовать его в holoviews набор данных при необходимости.

import numpy as np 
import holoviews as hv
import xarray as xr
data = np.random.rand(100, 100, 3,10)
times = np.arange(0,10)
channels=['a','b','c']
ds = hv.Dataset((times,channels,
                 np.linspace(0., 1., 100),
                 np.linspace(0., 1., 100),
                 data),
                kdims=['t', 'c', 'y', 'x'],
                vdims=hv.Dimension('T', range=(0, .9)))
print(ds.select(c='a',t=0))

da = xr.DataArray(
        np.random.rand(times.shape[0], len(channels), 100, 100),
        [
            ("t", times),
            ("c", channels),
            ("y", np.linspace(0., 1., 100)),
            ("x", np.linspace(0., 1., 100)),
         ],
         )
ds = da.to_dataset(name="T")
print(hv.Dataset(ds.loc[dict(c='a',t=0)]))
...