向 xarray.DataArray 添加新坐标
add new coordinates to an xarray.DataArray
假设以下代码有一个 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 非常稀疏,不确定我做错了什么。
看来在添加新坐标时,您还需要传递添加坐标的维度。所以在这种情况下,它将是:
subset.assign_coords(
alternate_sample_weights=('samples', np.zeros(5)))
假设以下代码有一个 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 非常稀疏,不确定我做错了什么。
看来在添加新坐标时,您还需要传递添加坐标的维度。所以在这种情况下,它将是:
subset.assign_coords(
alternate_sample_weights=('samples', np.zeros(5)))