向xarray.DataArray添加新坐标

时间:2019-07-09 11:13:39

标签: python python-xarray

假定下面的代码,其中包含一个带有两个维度和一个坐标的xarray.DataArray

import numpy as np
from xarray import DataArray

data = np.random.rand(10, 4)
f_names = ['a', 'b', 'c', 'd']
sample_weights = np.random.rand(10)
rows = list(range(len(data)))
coords={'samples': rows,
        'features': f_names,
        'sample_weights': ('samples', sample_weights)}
xdata = DataArray(data, coords=coords,
                  dims=['samples', 'features'])

subset = xdata[::2]

现在,我想向alternate_sample_weights添加另一个坐标,例如subset。我尝试:

subset.assign_coords(alternate_sample_weights=np.zeros(5)

这会导致以下错误:

ValueError: cannot add coordinates with new dimensions to a DataArray

API documentation非常稀疏,不确定我在做什么错。

1 个答案:

答案 0 :(得分:0)

看来,添加新坐标时,您还需要传递添加坐标的尺寸。因此,在这种情况下,它将是:

subset.assign_coords(
    alternate_sample_weights=('samples', np.zeros(5)))