Holoviews: выбор набора данных с уменьшением размеров

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)

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

:Dataset   [y,x]   (T)

person paugam    schedule 07.04.2020    source источник


Ответы (1)


решение состоит в том, чтобы определить набор данных как 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)]))
person paugam    schedule 07.04.2020